Как восстановить буквы в юникоде? - PullRequest
2 голосов
/ 16 октября 2011

Кто-то по электронной почте прислал мне такие письма

IVIØR†€™

правильно должно быть

IVIØR†€™

предположим, что Как я представляю их в оригинальном португальском языке, он изменился после прохождения через HTTP-запрос GET.

Я, вероятно, не смогу исправить сайт ... но, возможно, создать инструмент для восстановления этих сломанных закодированных букв? или кто-нибудь знает какой-нибудь ремонтный инструмент? или как это сделать вручную вручную? Похоже, ничего не потеряно .. просто плохо истолковано

Ответы [ 2 ]

4 голосов
/ 16 октября 2011

Здесь произошло то, что UTF-8 был неправильно истолкован как ISO-8859-1;и затем другие виды искажения (плохая строка ISO-8859-1, повторно кодируемая в UTF-8; символ неразрывного пробела '\ xA0', преобразуемый в обычный пробел '\ x20'), кажется, произошел впоследствии,хотя это может быть просто результатом его вставки в переполнение стека.

Из-за последующего искажения нет действительно хорошего способа полностью отменить его, но вы можете в основном отменить его, передавэто через не очень строгий интерпретатор UTF-8.Например, если я сохраню «IVIÃRâ € ™» в виде текстового файла на моем компьютере, используя Блокнот, с кодировкой «ANSI» (однобайтовый), а затем открою его в Firefox ипопросите его интерпретировать его как UTF-8 (Firefox> Веб-разработчик> Кодировка символов> Юникод (UTF-8)), а затем отобразится «IVIØR� ™».(«�» из-за того, что «\ xA0» было изменено на «\ x20», что нарушило кодировку UTF-8.)

0 голосов
/ 16 октября 2011

Они, вероятно, не сломаны. Это просто разница между кодировкой, в которой они были отправлены, и кодировкой, в которой вы их просматриваете.

Выясните, какая кодировка использовалась изначально, и используйте ту же кодировку для ее декодирования, и она должна выглядеть как оригинальная. С точки зрения написания инструмента «исправить это», вам всегда нужно знать, в какой кодировке они были изначально созданы, что может быть сложно в зависимости от источника и наличия у вас доступа к указанной информации.

...