Я реализовал скрипт PHP.
Я запускаю свой PHP-скрипт по следующему URL: http://server/script.php?param1=%80t%80
Итак, я передаю параметр GET в мой PHP-скрипт.
Параметр называется param1.
param1 содержит строку «€ t €», которая закодирована в виде URL «% 80t% 80».
Мой PHP-скрипт кодируется нормой UTF-8.
Мне было интересно, какая кодировка символов применяется к строке, содержащейся в $ _GET ["param1"].
Конечно, кодировка символов в $ _GET ["param1"] не является UTF-8.
Причина: следующая команда в моем PHP-скрипте приводит к «80 74 80», что является шестнадцатеричным представлением $ _GET ["param1"].
var_dump(unpack("H*", $_GET["param1"]));
Если кодировка символов в $ _GET ["param1"] была UTF-8, тогда предыдущая команда PHP выдает "e2 82 ac 74 e2 82 ac".
Кодировка символов в $ _GET ["param1"] не соответствует ISO-8859-1, так как символ € не включен в кодировку IS0-8859-1.
Для просмотра таблицы кодировки ISO-8859-1 перейдите на http://en.wikipedia.org/wiki/ISO/IEC_8859-1
Таким образом, внутренняя кодировка PHP, возвращаемая функцией mb_internal_encoding, не применяется к $ _GET ["param1"], потому что это IS0-8859-1.
Кто-нибудь знает, какая кодировка применяется к строке, содержащейся в $ _GET ["param1"]?