我试图导入.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|בְּרֵ×ש×ִ֖ית ×‘Ö¼Ö¸×¨Ö¸Ö£× ×Ö±×œÖ¹×”Ö´Ö‘×™× ×ֵ֥תהַש×Ö¼Ö¸×žÖ·Ö–×™Ö´× ×•Ö°×ֵ֥ת ×”Ö¸×ָֽרֶץ׃
事实上,文件本身变成乱码 - 在运行程序后在记事本中查看时,字符已经发生了某种变化。
我有一个在AIDE上运行Android程序的版本,它工作并没有这个问题。 Eclipse是否会不必要地强制使用特定的无用编码?
检查您的终端的输出编码。 – chrylis
你如何阅读文件?你指定了一个字符集吗?旧的基于'File'的读写器默认为JVM默认字符集,而基于'Path'的读写器默认为UTF-8。 * input *文件本身的实际编码是什么?你想在*输出*文件上进行什么编码? – Andreas
使用InputStreamReader构造函数,该构造函数接受明确的字符集并为相关文件使用适当的字符集。 –