1

我目前正在使用遗留代码。该项目是一个基于 maven 的大型项目,其中一项任务是将编码从 cp1252 更改为 utf-8 .ie

<project.build.sourceEncoding>cp1252</project.build.sourceEncoding>

 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

大多数代码已经是 utf-8,但是其中有一些 xml 文件不是,(并且它们的标题为<?xml version="1.0" encoding="ISO-8859-1"?>.

我是否必须在它们的标题中手动将所有这些文件更改为 utf-8,或者只要将 Maven 中的设置更改为 UTF-8 就可以正常工作?我想这样做会导致很多可能的损坏字符?

4

2 回答 2

5

不适用于 XML 文件

目前,需要为每个处理源文件的插件单独配置源文件的字符编码。在这种情况下,源文件是指一些纯文本文件——与 XML 文件不同——缺乏指定所采用文件编码的内在方法。Java 源文件是此类文本文件的最典型示例。Velocity 模板、BeanShell 脚本和 APT 文档是进一步的示例。此建议不适用于 XML 文件,因为它们的编码可以从文件本身确定,请参阅 XML 编码以获取更多信息。

于 2013-09-12T07:59:58.883 回答
0

它完全依赖于 XML 元素内的数据。盲目更改编码可能会损坏 xml 解析中的一个或多个数据。这是因为,系统从表头中获取元素内的数据是否为特殊字符的信息。例如,在德语中表示某个字母的代码可能在日语中表示不同的字符。

您可能希望使用http://okapi.sourceforge.net/Release/Utilities/Help/encodingconversion.htm等外部工具处理您的 xml 文件;这将帮助您更改文件的编码。

作为第二种方法,如果您的 XML 文件很短并且您知道 XML 中特定 iso-8859-1 字符的 utf-8 代码,那么您可以使用简单的 java 替换函数来处理输入文件并生成输出文件.

于 2013-09-12T08:01:10.567 回答