Перекодирование строки
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Перекодирование строки Expand / Collapse
Автор
Сообщение
07.09.2006 11:01
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 27.11.2006 11:39
Сообщ.: 12, Visits: 117
Вопрос следующего рода - я устававливаю подключение при помощи url.openStream(), получаю HTML страничку, содержимое которой закодировано в KOI-8r. Все операции внутри программы я провожу в UTF-16 ( что собственно неудевительно ), как мне перегнать из KOI8-r (да и с любой другой) в UTF-16?

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

PS. Возможно такой вопрос уже был задан, но поиск по форуму при запросе "кодировка" вылетает
Sorry the application encountered an unexpected error. Information about this error has been logged. If you continue to receive this message please contact the board administrator.
Сообщ. #903998
07.09.2006 12:33
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 12.12.2006 17:30
Сообщ.: 45, Visits: 83
используй возможности класса String

1. getBytes(String charsetName)

2. new String(bytes[] b, String charsetName)

Сообщ. #904002
07.09.2006 12:47
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 12.12.2006 17:30
Сообщ.: 45, Visits: 83
в твоем случае, думаю, так

InputStream is = url.openStream();

byte[] b = new byte[...];

while(..){

..

is.read(b , ..,..);

String str = new String(b, имякодировкиkoi8);

..

}

Сообщ. #904005
07.09.2006 12:51
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 23.05.2007 20:20
Сообщ.: 662, Visits: 5 795
BufferedRaeder in = new BufferedReader(new InputStreamReader(url.openStream(), ...));

В качестве многоточия указываешь одно из следующего:
- java.nio.charset.Charset cs;
- java.nio.charset.CharsetDecoder cd;
- java.lang.String charsetName.
Смотри констукторы класса java.io.InputStreamReader.

Сделав так, массив байтов, приходящих с сервера будет правильно декодироваться в Unicode.

Преобразование из Unicode в UTF-16 -- отдельная операция.
Сообщ. #904011
08.09.2006 11:53
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 27.11.2006 11:39
Сообщ.: 12, Visits: 117
Спасибо!
Сообщ. #904067
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, mishgun, pl

Время GMT +3:00, Сейчас 6:35