【问题标题】:When changing encoding in Maven project (CP-1252 to UTF-8), how shall i handle XML-files with encoding iso-8859-1在 Maven 项目中更改编码(CP-1252 到 UTF-8)时,我应该如何处理编码为 iso-8859-1 的 XML 文件
【发布时间】:2013-09-16 12:06:47
【问题描述】:

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

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

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

大部分代码已经是 utf-8,但其中有一些 xml 文件不是,(并且它们的标头为 &lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;.

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

【问题讨论】:

    标签: java maven encoding utf-8 iso-8859-1


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      doesn't apply to XML files:

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

      【讨论】:

        猜你喜欢
        • 2012-08-16
        • 2016-10-04
        • 2011-09-23
        • 1970-01-01
        • 2010-12-27
        • 1970-01-01
        • 1970-01-01
        • 2010-12-08
        • 2014-04-26
        相关资源
        最近更新 更多