Мне нужна помощь с декодированием закодированных в скандинавском формате ASCII значений с помощью PHP.
Я пробовал расшифровать символ как это:
$string = "%e5";
echo rawurldecode($string);
Но это дает черный алмаз . Тот же результат с функцией urldecode ().
я использую <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
в голову.
<meta charset="utf-8">
При использовании функции rawurldecode () для английских букв, таких как% 61, она прекрасно работает.
Увидеть http://www.backbone.se/urlencodingUTF8.htm для всех URL-кодированных ASCII-кодов.
E5
является ISO-8859-1 кодированным представлением символа å.
Ваша проблема в том, что вы выводите строку в кодировке ISO-8859-1, но при этом говорите браузеру интерпретировать ее как UTF-8. Либо измените кодировку в своем HTTP-заголовке / метатеге, либо преобразуйте строку из 8859 в UTF-8:
echo utf8_encode(rawurldecode('%e5'));
(Там почти никогда не хорошее время для utf8_encode
, но в этом случае он фактически кратко выполняет необходимое преобразование кодировки. Обычно вы должны предпочесть явные преобразования кодировок, используя iconv
или же mb_convert_encoding
.)
Набор символов utf-8 не содержит код e5.
Пожалуйста, проверьте таблицу с кодировкой UTF-8.
Попробуйте с правильной строкой utf-8.
Набор символов «скандинавский ascii» не поддерживается rawurldecode.
Попробуйте одну из функций iconv, которые поддерживают CP865 (я думаю, это набор символов, для которого вы хотите поддержку):
http://php.net/manual/ro/function.iconv-mime-decode.php
http://php.net/manual/ro/function.iconv-mime-decode-headers.php