Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
cf_dimka
Зарегистрирован: 26.10.2004 Сообщения: 13
|
Добавлено: Пн Апр 11 2005 17:19 Заголовок сообщения: перекодировка на Java Unicode to Ascii (DOS) |
|
|
Люди! Такой вопрос
нужно сохранить в текстовый файл текст на русском в кодировке MSDOS
переменная String содержит русский текст в Unicode
я попробовал так:
представил текст как массив типа CHAR
затем получил десятичное значение каждой буквы
и отнял разницу между юникодом и досом
и пополняю массив mybyte
затем делаю так
String myString = String(mybyte, "cp1251");
все буквы получились нормально
КРОМЕ "Ш"
код - "152" HEX "0x98"
Выдает "?" HEX "0x3f"
тоже самое если "\152" и "\u0098"
может кто сталкивался?
или другие способы есть?
пробовал на jre 1.1, 1.3 , 1.4, 1.4.2 |
|
Вернуться к началу |
|
|
Kefir
Зарегистрирован: 16.04.2005 Сообщения: 443 Откуда: Пермь
|
Добавлено: Пн Апр 18 2005 13:34 Заголовок сообщения: |
|
|
А так не пробовал?
Код: | String str = "привет";
OutputStream out = new FileOutputStream("output.txt");
out.write(str.getBytes("cp866"));
|
Вообще, конечно, гарантировать что сработает не могу,
но попробовать стоит |
|
Вернуться к началу |
|
|
cf_dimka
Зарегистрирован: 26.10.2004 Сообщения: 13
|
Добавлено: Пн Май 02 2005 20:04 Заголовок сообщения: |
|
|
именно так я и пробовал
только почему-то нормальный вывод наблюдался в Cp1251!
несмотря на то что кодировка CMD действительно Cp866
c этого я к сожалению тоже не понял (Если я гоню, поправьте)
может я где-то в корне не прав?
проблема остается .
пока вышел из положения с помощью ByteOutputStream
загнал байты прямо в файл. а вот на консоль никак
спасибо за внимание надеюсь на помощь. |
|
Вернуться к началу |
|
|
|