首先,您需要知道文件的编码格式,例如UTF-8或UTF-16。生成此文件的原因是什么?
在那之后,它相对简单-
您需要创建一个
FileInputStream包装成
InputStreamReader而不是的包装
FileReader。(
FileReader始终使用系统的默认编码。)指定创建时要使用的编码
InputStreamReader,如果选择了正确的编码,则所有内容都应开始工作。
请注意,您不需要使用OpenCSV进行检查-您可以自己阅读文件的文本并全部打印出来。我不确定是否
System.out可以处理非ASCII字符-
您可能希望找到一种不同的检查字符串的方式,例如将字符的各个值打印为整数(最好以十六进制表示),然后将它们与unipre.org上的图表进行比较。另一方面,您可以尝试正确的编码,然后看看会发生什么…
编辑:好的,所以,如果您使用的是UTF-8:
CSVReader reader=new CSVReader( new InputStreamReader(new FileInputStream("d:\a.csv"), "UTF-8"), ',', ''', 1);String[] line;while ((line = reader.readNext()) != null) { StringBuilder stb = new StringBuilder(400); for (int i = 0; i < line.length; i++) { stb.append(line[i]); stb.append(";"); } System.out.println(stb);}(我希望您有一个try / finally块可以用您的真实代码关闭文件。)



