Я пытаюсь импортировать текстовый файл .dat, включая иврит и английские символы в java-программу с использованием Eclipse Neon 4.6.0:
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 ненужным форсированием конкретной бесполезной кодировки?
File
по умолчанию используют набор символов JVM по умолчанию, а новые устройства чтения/записи на основеPath
по умолчанию используют UTF-8. Какова фактическая кодировка самого файла input? Какую кодировку вы хотите использовать в файле output? - person Andreas   schedule 15.09.2016ArrayList
вместо массива фиксированного размера. - person dan04   schedule 16.09.2016