Я реализовал PHP-скрипт.
Я запустил свой PHP-скрипт по следующему URL-адресу: http://server/script.php?param1=%80t%80PHP + кодировка символов + параметр GET
Итак, я передаю параметр 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 переменного тока 74 e2 82 переменного тока".
Кодировка символов в $ _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"]?
Почему вы используете распаковывать? – Andreas