What is the proper encoding to use with item Reader(与Item Reader一起使用的正确编码是什么)
本文介绍了与Item Reader一起使用的正确编码是什么的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Spring Batch读取CSV文件,当我用Notepad++打开这些文件时,我看到使用的编码是encode in ANSI。
现在,当从文件中读取一行时,我注意到所有重音字符都不能正确显示。例如,我们取这一行:
Données issues de la reprise des données
它被转换成这样,带有一些特殊字符:
因此,作为第一个解决方案,我将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.
这篇关于与Item Reader一起使用的正确编码是什么的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
织梦狗教程
本文标题为:与Item Reader一起使用的正确编码是什么
基础教程推荐
猜你喜欢
- Struts2 URL 无法访问 2022-01-01
- 使用堆栈算法进行括号/括号匹配 2022-01-01
- RabbitMQ:消息保持“未确认"; 2022-01-01
- 修改 void 函数的输入参数,然后读取 2022-01-01
- 问题http://apache.org/xml/features/xinclude测试日志4j 2 2022-01-01
- 存储 20 位数字的数据类型 2022-01-01
- 如何对 Java Hashmap 中的值求和 2022-01-01
- REST Web 服务返回 415 - 不支持的媒体类型 2022-01-01
- Spring AOP错误无法懒惰地为此建议构建thisJoinPoin 2022-09-13
- 无法复制:“比较方法违反了它的一般约定!" 2022-01-01
