我将使用Spring Batch来读取CSV文件,当我使用Notepad++打开这些文件时,我发现使用的编码是ANSI编码
。现在,当从文件中读取一行时,我注意到所有的重音字符都没有正确显示。例如,让我们看一下这一行:
Données issues de la reprise des données
经过一些特殊字符的转换,它被转化为下面这个样子:
因此,我的第一种解决方案是将我的项目读取器编码设置为utf-8
,但问题仍然存在。
- 我认为使用
UTF-8
编码可以识别所有的重音字符,这不是真的吗?根据我所知,UTF-8是处理网页上所有字符的最佳编码方式?
在将我的项目读取器编码设置为ISO-8859-1
之后:
public class TestItemReader extends FlatFileItemReader<TestFileRow> {
private static final Logger log = LoggerFactory.getLogger(TestItemReader.class);
public ScelleItemReader(String path) {
this.setResource( new FileSystemResource(path + "/Test.csv"));
this.setEncoding("ISO-8859-1");
我看不到这些字符现在被正确地显示。
- 作为输出,我应该用
utf-8
作为编码来写,如果我使用ISO-8859-1
作为输入编码和utf-8
作为输出,这样做是正确的吗?