Как читать не ASCII файл?

1

У меня есть txt файл с кириллическими символами. Вот как я читал:

        String csvFile = "C:\\Users\\dolgopolov.a\\Desktop\\Список рассылки 14 07 2014.txt";
        BufferedReader br = null;
        String line = "";
        String cvsSplitBy = "\t";

        try {

            br = new BufferedReader(new FileReader(csvFile));
            while ((line = br.readLine()) != null) {

                // use comma as separator
                String[] country = line.split(cvsSplitBy);

                System.out.println("Номер: " + country[0]
                        + " , Сообщение: " + country[1] + "");

            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

Но результат прост:

Номер: 9047120386 , Сообщение: ��������� �������! �� ����� ����� ������� ������������� � ������� 2,98   ���., ������� ���������� �������� � ������� 3 ����

Итак, как я могу избежать этого? Нужно ли мне менять тип кодировки или что-то еще?

  • 0
    Да, вы должны установить кодировку UTF-8 и повторить попытку.
  • 0
    Посмотри здесь
Показать ещё 1 комментарий
Теги:
encoding

2 ответа

3
Лучший ответ

FileReader использует кодировку по умолчанию, поэтому вы должны использовать InputStreamReader

new InputStreamReader(new FileInputStream(filePath), encoding)

  • 0
    Я сделал это br = new BufferedReader(new InputStreamReader(new FileInputStream(csvFile), "UTF-8"));
  • 0
    Нет, это не работает.
Показать ещё 1 комментарий
1

StreamReader sr = новый StreamReader (поток, Encoding.Unicode);

или

string convert = Encoding.BigEndianUnicode.GetString(dataArray); где dataArray - ваш массив байтов

  • 0
    Вопрос помечен Java, а код в вопросе Java.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню