前段时间公司项目有一个需求,需要读取解析本地CSV文件,将里面的内容在画面上以selectbox的形式表现出来。读取CSV文件的时候就涉及到check处理了。
其中有一个check处理让我困扰了很久,就是判断读入的CSV文件的编码格式是否符合在Java中所设定的编码格式。如果在Java中进行CSV文件读入时所设定的编码格式为【Shift-JIS】,而本地CSV文件的保存编码格式为【UTF-8】,那么读入后的日文汉字就会出现乱码现象。
起初我以为能够有方法来准确地读取文件的编码格式,但随着调查的不断深入才了解到,没有任何一种方法是能够准确地获得文件的编码格式。所以一些共同jar包里的方法其实都是用概率来推测这个文件所属的编码格式。
最终,我选择了下面的icu4j来进行编码格式的获取。
- 首先配置maven,将jar包引入到工程。
<dependency>
<groupId>com.ibm.icu</groupId