#php #html #character-encoding
#php #HTML #кодировка символов
Вопрос:
В PHP у меня есть следующая строка: =CA=CC=D1=C8=C9
какова ее кодировка символов?
Комментарии:
1. В какой кодировке? Можете ли вы дать некоторый контекст?
2. Это очень счастливая улыбка, окруженная четырьмя очень грустными улыбками, разделенными случайными буквами.
=C =C =D =C =C
Этот формат пытались преобразовать в JSON для стандартизированной передачи эмоций, но он был отклонен из-за случайных букв; в следующей редакции, вероятно, будут использоваться пробелы.3. @Matteo: На самом деле «AC189» — это магическое число, используемое при кодировании DRM для нового формата кассеты Sony, и они запретили его по юридическим причинам. Однако это не широко известно, поскольку они хотели сохранить это в тайне. Пожалуйста, никому не говорите, что я упомянул это! (Иронично, что строка смайликов представляет Sony в окружении своих клиентов.)
Ответ №1:
Не имеет смысла иметь строку, не зная, какую кодировку она использует.
Эти 5 байт означают разные вещи в разных кодировках.
- В UTF-8 она недопустима. Все начальные байты и никаких конечных байтов.
- В ISO-8859-1 и windows-1252 это строка
ÊÌÑÈÉ
. - Согласно chardet, она находится в KOI8-R и декодируется в
йляхи
Комментарии:
1. Есть ли у них какой-нибудь способ преобразовать ее в UTF-8. Она содержит арабский язык.
2. В таком случае, это, вероятно, ISO-8859-6 или windows-1256, и декодируется в
تجربة
. Эквивалент UTF-8 является=D8=AA=D8=AC=D8=B1=D8=A8=D8=A9
.3. можете ли вы дать мне php-код для декодирования текста (если это windows-1256)
4. Пять байтов в целом слишком мало, чтобы угадывать что-то вроде
chardet
. В любом случае,chardet
не использует кодировку, которая используется для арабского языка.
Ответ №2:
Ответ и комментарии, которые вы получили, предполагали, что вы уже знали, что кодировка транспортировки была «доступна для печати в кавычках» … при декодировании с использованием этого «=CA= CC= D1= C8 = C9» становится «xCA xCCxD1 xC8 xC9» (что НЕ является UTF-8, как вы просили в комментарии) … и они сосредоточились на том, какую кодировку можно разумно использовать для создания из нее Unicode. Чтобы получить UTF-8, вам нужно выполнить еще два шага: расшифровать «xCAxCCxD1xC8xC9» в Unicode (используя кодировку, соответствующую арабскому тексту), а затем закодировать в UTF-8.
Ответ №3:
Она называется заключенной в кавычки для печати
Я могу расшифровать ее с помощью :
quoted_printable_decode($string);