gpt4 book ai didi

java - 使用 DOM 创建 XML 后, header 包含 UTF-8 ?

转载 作者:行者123 更新时间:2023-12-01 15:23:29 24 4
gpt4 key购买 nike

我需要在 Eclipse(对于 Java)下使用 DOM 并使用以下代码创建一个 XML 文件:

        // write the content into xml file
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("output.xml"));
transformer.transform(source, result);

我的 XML 的第一行是:

<?xml version="1.0" encoding="UTF-8"?>

而不是:

<?xml version="1.0"?>

我的问题是:

  1. 这两个声明有什么区别?

  2. 如何使用 header 生成 XML 文件:<?xml version="1.0"?>

问候

最佳答案

在现代世界中,文本文件具有“编码”,它定义了字符在文件中的表示方式。如果您的文件仅包含纯 ASCII 字符(0x01 到 0x7f),您将看不到这一点,但如果您需要表示其他任何内容,例如符号或重音字符,则文件的使用者需要知道这些字符的编码方式。

对扩展字符进行编码有多种不同的方法,最常见的是 ISO-8859-x(其中 x 取决于语言)和 Unicode,后者为每个可能的字符分配一个唯一的编号。 ISO 代码页使用 0x80 到 0xFF 范围来表示扩展字符。 UTF-8 是一种以多个 8 位字节表示任意长度的 Unicode 字符(也称为“代码点”)的系统。相同的扩展字符(例如 e-circumflex)在不同的编码中会有不同的表示形式。

您使用的序列化器配置为输出 UTF-8 编码。该文件的使用者必须知道使用了 UTF-8 编码,否则就有损坏数据的风险。您可能见过包含黑菱形字符的网页,或者其中撇号或其他特殊字符之类的文本被 2 个奇怪的字符替换的文本。这些是编码/解码不兼容的症状。

可能有一种方法可以强制序列化器省略编码声明,但如果您这样做,文件的使用者可能无法正确解码它,因为它必须猜测编码。

关于java - 使用 DOM 创建 XML 后, header 包含 UTF-8 ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10519757/

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