В настоящее время я читаю файлы.txt с
FileInputStream is = new FileInputStream(masterPath+txt);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String readLine = null;
while ((readLine = br.readLine()) != null)
{
...
Но символы Unicode не отображаются так, как должны.
Любые идеи о том, как изменить приведенный выше код, для работы unicode?
Благодарю!
Да. Укажите подходящую кодировку при построении InputStreamReader. Если ваш файл закодирован в кодировке UTF-8, используйте
new BufferedReader(new InputStreamReader(is, "UTF-8"));
InputStreamReader
конструктор InputStreamReader
будет считать, что файл имеет "стандартную кодировку" системы. Поскольку это непредсказуемо, что это такое, этот конструктор нельзя использовать, кроме как в примерах игрушек. Используйте один из конструкторов с двумя аргументами, которые позволяют явно указывать кодировку.
Кстати, "Юникод" недостаточно, чтобы рассказать, что находится в файле, который вы хотите прочитать. Unicode сам по себе определяет, как номера ("кодовые точки") присваиваются символам, а не как упаковывать эти числа в байты в файле, что является заданием "кодирования". На практике ваша кодировка, скорее всего, будет либо UTF-8, либо UTF-16, либо какой-либо контентой.
Возможно, ваш файл не кодируется в кодировке unicode, или, может быть, способ, которым вы его показываете, не совместим с юникодом (Windows cmd.exe, я смотрю на вас).