Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Файлы+Русский язык=Проблемя кодировки


Автор: Cellador 20.2.2006, 20:33
Я пользуюсь IntelliJ Idea 3.0.
Когда я считываю файл и вывожу его в консоль у меня вместо русского языка выводятся "?".
Когда в считанной строке ищу какое-нибудь слово он его не находит, хотя оно там есть.
Только при записи в файл русского текста я понял, что нужно менять кодировку:
Код
String s=dis.readLine();
while (s!=null) {
  System.out.println(s);
  if(s.indexOf("Текст")>=0){
    ...
  }
  s=dis.readLine();
}
...
dos.write("Привет".getBytes("Cp1251"));
...
dis,dos - RandomAccessFile

В остальных случаях не помогает, что тут надо делать?

Автор: LSD 20.2.2006, 21:58
Когда читаешь из файла надо указывать кодировку в которой этот файл находится:
Код
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("my_file.txt"), "Cp866"));
String str;
while((str = reader.readLine()) != null)
{
  //do some useful
}
reader.close();


Способов борьбы с неправильной кодировкой в консоли Windows два:
1) перенастроить кодировку консоли на умолчальную кодировку системы: установить шрифт в Lucida Console и выполнить в консоли команду chcp 1251
2) изменть умолчальную кодировку для JVM, для этого надо ее запускать с ключем -Dfile.encoding=Cp866.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)