http://www.php.net/str_replace str_replace
(PHP 4, PHP 5)
Estas usando el str_replace incorrectamente.
La forma correcta es:
$nuevacadena = str_replace($textoabuscar, $reemplazarporesto, $enestacadena);
En tu caso seria:
$nueva = str_replace(" ", "%20", $row_Recordset1['canal']);
Luego lo haces de nuevo para el caracter +:
$nueva = str_replace("+", "%2B", $nueva);
Aunque lo puedes hacer con 1 solo STR_REPLACE y el uso de Arrays.