вьетнамская кодировка темы электронного письма?
Вопрос
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.?=
Я получил электронное письмо с таким заголовком темы.Как это должно быть расшифровано?
Решение
Это MIME-кодированное слово.Синтаксис таков =?
кодировка?
передача-кодирование?
закодированные данные?=
.Кодировка передачи - это B
ase64 или Q
uoted-доступно для печати.
Чтобы расшифровать его:
- Разделите закодированное слово на 3 части.
- Расшифруйте данные (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-байтового символа UTF-8, а второй начинается с следящего байта.Но комбинированный, они являются допустимыми UTF-8 и декодируются в строку Thầy_gửi_bài_tập_cho_em_với.
(что Google переводит как "Учитель отправил меня на тренировку".)
Другие советы
Это определено в RFC 2047: http://tools.ietf.org/html/rfc2047
См. Раздел 4 на кодировках.Я не уверен, что есть что-то в базовой рамки, которая обрабатывает это / обрабатывает это правильно.
Редактировать: вот попытка одного человека на это: http://vsevolodp.blogspot.com/2010/11/how-to-deCode-encoded-word-header.html