【问题标题】:How to write ASCII extended characters(which has ascii code > 127) to XML file using java?如何使用java将ASCII扩展字符(ascii代码> 127)写入XML文件?
【发布时间】:2010-01-21 16:56:43
【问题描述】:

我阅读来自不同来源的文本,这些文本可能包含来自不同语言的字符/扩展字符,例如 € ƒ „ … † ® ©。然后我应该写入一个 XML 文件,我在 java 中使用 PrinterWriter 写入一个 XML 文件,无论我读取什么字符串。因此,对于这些类型的扩展字符,其 ascii 大于 127 会在 XML 文件中出现非法字符错误,那么在写入 XML 时如何正确编码。

【问题讨论】:

    标签: java xml character-encoding


    【解决方案1】:

    首先,不存在 127 以上的 ASCII 码。ASCII 只定义不超过 127 的值。“扩展 ASCII”是一个模棱两可的术语,因为它用于描述许多不同的编码。

    现在,至于 XML:使用您想要编写字符串的任何 XML API,而不用担心内容(只要它们可以用 XML 表示;U+0000 到 U+001F 范围内的各种控制字符) t 可表示的,不幸的是)。 不要尝试自己从头开始创建 XML - 这就是 XML API 的用途。确保您的 XML 文档使用能够处理您需要的字符的编码(UTF-8 通常是一个不错的选择,并且通常是默认设置),确保您的 Java 字符串中包含正确的 Unicode 数据,并且您应该没问题。

    编辑:我之前实际上并没有发现这一点:

    我在 java 中使用 PrinterWriter 写入 XML

    不要。请使用 XML API。周围有很多,您不必担心。我也不建议在大多数情况下使用PrintWriter - 在大多数情况下抑制异常并不是一个好主意。

    【讨论】:

    • 我的输出 XML 文件是 WordProcessingML 格式,所以你能推荐任何开源 XML API 吗?
    • @Sn:任何一个,只要是您要创建的普通 XML。您可能会发现 JDOM (jdom.org) 比内置 API 更易于使用。
    【解决方案2】:

    使用&#value; 语法。空格为 

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      • 2011-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多