Может подскажет кто и объяснит... Почему не работает кириллицей и как это исправить?
Павел
22 уровень
Про вывод в кириллице.
Решен
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia Volkova Java Developer в DXC Master
20 февраля 2020, 14:40
А как ты ищешь?
+1
Павел
20 февраля 2020, 14:44
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
BufferedReader bufferedReader1 = new BufferedReader(new FileReader(bufferedReader.readLine()));
int idSearch = Integer.parseInt(args[0]);
ArrayList<String> contentFiles = new ArrayList<>();
String outPut;
while ((outPut = bufferedReader1.readLine()) != null){
contentFiles.add(outPut);
}
bufferedReader.close();
bufferedReader1.close();
int indexSpace;
for (String s : contentFiles){
indexSpace = s.indexOf(" ");
if (s.substring(0,indexSpace).equals(String.valueOf(idSearch)))
System.out.println(s);
}
0
Павел
20 февраля 2020, 14:46
Всё работает и проверку прошла. Но кириллица выводится в формате "2 ���� 3000 4".
+1
Ksenia Volkova Java Developer в DXC Master
20 февраля 2020, 15:06решение
А кодировка у файла какая?
+2
Павел
20 февраля 2020, 15:32
Спасибо понял. .txt под win создаётся в кодировке ANSI. Буду разбираться в них.
Получается что это ограничение FileReader'a? Он работает только с UTF- 8 или так же с Unicode?
0
Ksenia Volkova Java Developer в DXC Master
20 февраля 2020, 15:49
UTF-8 - это тоже юникод. И ты для txt можешь сам указать кодировку, в том числе и в Windows.
FileReader всегда читает в системной кодировке (в случае с Идеей - в той, которая в настройках Идеи указана как global encoding). Обычно там стоит UTF-8.
Так что если файл в другой кодировке, то стоит использовать InputStreamReader, в конструктор которого передается FileInputStream и нужная кодировка.
+1