Восстановление символов Windows-1252 из данных, неправильно сохраненных как UTF-8 - PullRequest
1 голос
/ 23 декабря 2011

Я имею дело с данными, которые были отобраны с использованием Java HtmlUnit.На веб-странице использовалась кодировка Windows-1252, но ответ был получен, как если бы страница была закодирована как UTF-8 (т. Е. При вызове getContentAsString для объекта HtmlUnit WebResponse была указана кодировка UTF-8, а не откладывание на кодировку, указанную на сервере).ответ).Есть ли способ отменить этот процесс, чтобы восстановить исходные данные Windows-1252 из неправильно обозначенных символьных данных UTF-8?

Большинство других вопросов по этой теме связаны с определением типа файла или преобразованием из одного типа потока в другой для символов, правильно закодированных в первую очередь.Это не тот случай, здесь.Я не верю, что такие утилиты, как iconv, будут работать, потому что они ожидают, что потоки правильно сохранятся в исходной кодировке, чтобы начать с них.

1 Ответ

3 голосов
/ 23 декабря 2011

Наверное, нет.Если текст в кодировке Windows-1252 будет ошибочно принят за UTF-8, все кодовые точки, отличные от ASCII, будут повреждены из-за того, как UTF-8 работает с этими кодовыми точками.Только если вам очень повезло, и все не-ASCII кодовые точки идут парами или триплетами, которые по чистой случайности преобразуются в реальные кодовые точки Unicode, вы можете полностью изменить процесс.удачи.

...