PHP: Что это за кодировка символов в этой строке?

#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);