gpt4 book ai didi

java - 与项目阅读器一起使用的正确编码是什么

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:48:48 24 4
gpt4 key购买 nike

我正在使用 spring batch 读取 csv 文件,当我用 Notepad++ 打开这些文件时,我看到使用的编码是 ANSI 编码。现在,当从文件中读取一行时,我注意到所有重音字符都没有正确显示。例如,让我们采用这一行:

Données issues de la reprise des données

变成了这个样子,加上了一些特殊的字符:

enter image description here

作为第一个解决方案,我将 Item Reader 的编码设置为 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 作为输出?

最佳答案

我遇到了同样的问题。输入文件是 ANSI,“ü”在输出中显示为正方形。

那是因为你的输入文件是用 ANSI 编码的,但默认情况下,Spring Batch assumes ISO-8859-1 encoding (6.6.2 FlatFileItemReader)。

因此,您必须将阅读器的编码设置为“Cp1252”(setEncoding("Cp1252")) - that's how Java refers to ANSI encoding.

此外,您必须将编写器的编码设置为“utf-8”。我不完全确定为什么它不适用于其他编码(通常能够显示“ü”,例如 ISO-8859-1),但它适用于 UTF-8,所以这就是我正在使用的.

关于java - 与项目阅读器一起使用的正确编码是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47303899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com