Я пытаюсь импортировать .dat text file в том числе и древнееврейских и английские символы в программу Java с помощью Eclipse, неон 4.6.0:Eclipse Java импортирует странные нееврейские символы вместо иврита в файл - проблема с кодировкой?
String[] getFile(String path) throws IOException
{
BufferedReader in = new BufferedReader(new InputStreamReader(this.getClass().getResource("../../../t3utf.dat").openStream()));
String l;
String[] dataFile = new String[23213]; //Does java have push and pop or auto expanding lists?
int c = 0;
while ((l = in.readLine()) != null) {
dataFile[c] = l;
c++;
}
return dataFile;
}
По какой-то причине, еврейские символы заменяются случайным бреда:
Оригинал: gen|1|1|בְּרֵאשִׁ֖ית בָּרָ֣א אֱלֹהִ֑ים אֵ֥ת הַשָּׁמַ֖יִם וְאֵ֥ת הָאָֽרֶץ׃
После того как программа запускается один раз, все иудейские символы заменяются бреда:
Новое: gen|1|1|בְּרֵ×ש×ִ֖ית ×‘Ö¼Ö¸×¨Ö¸Ö£× ×Ö±×œÖ¹×”Ö´Ö‘×™× ×ֵ֥תהַש×Ö¼Ö¸×žÖ·Ö–×™Ö´× ×•Ö°×ֵ֥ת ×”Ö¸×ָֽרֶץ׃
Фактически, сам файл изменяется на тарабарщину - при просмотре в блокноте после запуска программы символы каким-то образом изменились.
У меня была версия моей программы, работающей на Android в AIDE, которая работала и не имела этой проблемы. Является ли Eclipse излишним форсированием конкретной бесполезной кодировки?
Проверьте выходную кодировку вашего терминала. – chrylis
Как вы читаете файл? Вы указали набор символов? Старые читатели/писатели, основанные на файле 'File', по умолчанию используют набор символов по умолчанию JVM, в то время как новые читатели/писатели, основанные на« Path », по умолчанию используют UTF-8. Какова фактическая кодировка самого файла * input *? Какая кодировка вы хотите в * output * файле? – Andreas
Используйте конструктор InputStreamReader, который принимает явный набор символов и использует соответствующий набор символов для рассматриваемого файла. –