вьетнамская тема письма? - PullRequest
1 голос
/ 26 марта 2011
Subject: Re:
 =?UTF-8?Q?Th=E1=BA=A7y_g=E1=BB=ADi_b=C3=A0i_t=E1=BA=ADp_cho_em_v=E1=BB?=
 =?UTF-8?Q?=9Bi.?=

Я получил письмо с этим заголовком. Как это должно быть декодировано?

Ответы [ 2 ]

6 голосов
/ 26 марта 2011

Это определено в RFC 2047: http://tools.ietf.org/html/rfc2047

См. Раздел 4 о кодировках.Я не уверен, есть ли что-то в базовой структуре, которая обрабатывает это / обрабатывает это правильно.

Редактировать: вот попытка одного человека на это: http://vsevolodp.blogspot.com/2010/11/how-to-decode-encoded-word-header.html

6 голосов
/ 26 марта 2011

Это кодированное слово MIME . Синтаксис: =? кодировка ? кодировка передачи ? кодированные данные ?=. Кодировка передачи: B ase64 или Q uoted-printable.

Чтобы декодировать это:

  1. Разделить закодированное слово на 3 части.
  2. Декодировать данные (3-я часть) в byte[] согласно их кодированию передачи (2-я часть). В этом случае используется кодировка Q, поэтому замените последовательности = xx соответствующими октетами. Это дает вам два байтовых массива [84, 104, 225, 186, 167, 121, 95, 103, 225, 187, 173, 105, 95, 98, 195, 160, 105, 95, 116, 225, 186, 173, 112, 95, 99, 104, 111, 95, 101, 109, 95, 118, 225, 187] и [155, 105, 46].
  3. Декодировать эти байтовые массивы в соответствии с указанной кодировкой.

В этом конкретном примере оба закодированных слова являются недействительными : в первом отсутствует трейловый байт 3-байтового символа UTF-8, а во втором начинается байт трейла , Но вместе , они действительны в формате UTF-8 и декодируются в строку Thầy_gửi_bài_tập_cho_em_với. (что переводится Google как "Учитель отправил меня на упражнение")

...