У меня есть файл, который имеет символы, такие как: «Joh 1: 1 ஆதியிலே வாரவாரதததை இருநஇருநதது, அநஅநத வாரவாரதததை தேவனிடததேவனிடததிலிருநதிலிருநதது, அநஅநத வாரவாரதததை தேவனாயிருநதேவனாயிருநதது».
www.unicode.org/charts/PDF/U0B80.pdf
Когда я использую следующий код:
bufferedWriter = new BufferedWriter (new OutputStreamWriter(System.out, "UTF8"));
Вывод — прямоугольники и другие странные символы, подобные этому:
"�P�^����O֛���;�<�aYՠ؛"
Кто-нибудь может помочь?
это полные коды:
File f=new File("E:\\bible.docx");
Reader decoded=new InputStreamReader(new FileInputStream(f), StandardCharsets.UTF_8);
bufferedWriter = new BufferedWriter (new OutputStreamWriter(System.out, StandardCharsets.UTF_8));
char[] buffer = new char[1024];
int n;
StringBuilder build=new StringBuilder();
while(true){
n=decoded.read(buffer);
if(n<0){break;}
build.append(buffer,0,n);
bufferedWriter.write(buffer);
}
Значение StringBuilder показывает символы UTF, но при отображении в окне оно отображается в виде прямоугольников.
Найден ответ на проблему!!! Кодировка правильная (т.е. UTF-8) Java читает файл как UTF-8, а строковые символы - UTF-8. Проблема в том, что нет шрифта для его отображения на панели вывода netbeans. После изменения шрифта для панели вывода (Netbeans->tools->options->misc->вкладка вывода) я получил ожидаемый результат. То же самое относится, когда он отображается в JTextArea (шрифт необходимо изменить). Но мы не можем изменить шрифт командной строки Windows.
docx
файл, вам нуженdocx
ридер. Вы не можете прочитать его, как если бы это был обычный текст. Проблема не в языке, а в формате файла. - person Peter Lawrey   schedule 01.08.2013