Как конвертировать из ISO-8859-1 в UTF-8 веб-страницу в java / groovy - PullRequest
2 голосов
/ 14 июля 2010

Я хочу прочитать веб-страницу A в кодировке ISO-8859-1, согласно браузеру, и вернуть содержимое в UTF-8 как содержимое веб-страницы B.

Это: Я хочупоказать содержимое страницы A в той же кодировке, которую я использую для отображения остальной части страницы B, то есть UTF-8.

Как мне сделать это в java / groovy?

заранее спасибо

Ответы [ 2 ]

3 голосов
/ 14 июля 2010

В Groovy вы можете написать что-то вроде этого:

def source = new URL("http://www.google.com").getText("ISO-8859-1")
def target = new String(source.getBytes("UTF-8"), "UTF-8")
1 голос
/ 14 июля 2010

Вы не говорите, на каком стеке вы строите или как вы получаете доступ к контенту, но общий механизм для такой операции транскодирования заключается в использовании UTF-16 в качестве посредника; то есть преобразовать байты ISO-8859-1 в символы UTF-16 в байты UTF-8.

Вы можете использовать InputStreamReader (с ISO-8859-1 Charset), а затем записывать байты через OutputStreamWriter (с UTF-8 Charset).

Некоторые API предоставляют операции кодирования как часть своих классов ввода / вывода (например, ServletResponse.getWriter()).

Я игнорирую необходимость разбирать и преобразовывать данные, что является целой другой червей.

...