По поводу вашего первого вопроса, это разница между urlencode
и rawurlencode
:
var_dump(urlencode("hello, world"));
Получит вас:
string 'hello%2C+world' (length=14)
Пока
var_dump(rawurlencode("hello, world"));
получит вас:
string 'hello%2C%20world' (length=16)
Полагаю, оба должны быть в порядке; но не стесняйтесь попробовать, на всякий случай; -)
Что касается второго пункта: Firefox пытается сделать URL-адреса «красивее», отображая их в удобочитаемом виде вместо кодированных, что плохо для нас, разработчиков, но приятно для конечных пользователей.
Например, если я введу этот URL в адресную строку Firefox:
http://tests/temp/temp.php?a=hello%2C%20world
Когда я нажимаю клавишу enter , она автоматически переводится на
http://tests/temp/temp.php?a=hello%2C%20world
Если это работает так, как вы делаете (и, поскольку вы видите закодированный URL с Firebug, возможно, оно работает) , все в порядке; -)