我有一个 csv 文件,其中包含一些包含中文字符串的字段。不幸的是,我不知道这个输入 csv 文件的编码是什么。我正在尝试读取此输入 csv 并从中使用选择性字段,我正在制作一个 html 和另一个 csv 文件作为输出。
在阅读 csv 输入时,我尝试了列表http://docs.oracle.com/javase/7/docs/technotes/guides/intl/encoding.doc.html 中的所有编码,这些编码在他们的描述中提到了中文。并发现如果我使用
InputStreamReader read = new InputStreamReader(filepath,"GB18030");
用于读取 csv 和
OutputStreamWriter osW=new OutputStreamWriter(objBufferedOutputStream,"UTF-16");
对于编写 html 和 csv,我的输出不显示奇怪的字符。
但是,有两个问题:
- 输出显示的字符串与输入完全不同!我的意思是,即使我没有对我的代码中的任何字符串进行任何处理,在输入 csv 的任何字段中都找不到输出。
例如,我的输入有一个中文字符字符串:字段编号 8 上的陈真珍。但我的输出 html 有类似:闄堢湡鐝’,对应于输入字段编号 8。
- 如您所见,有一个问号,即输出中的unicode替换字符闄堢湡鐝
我请求你帮我追踪这里可能出现的错误......
PS:Aiso,我查了谷歌翻译发现,输入字符串陈真珍的意思是一些陈真真
而其对应的输出字符串闄堢湡鐝’的意思就是所谓的药宝玉觉,所以在含义和字符的表示上也有区别。