gpt4 book ai didi

ruby - 如果我的 XML 文档指令指定了 UTF-8 编码,我还需要转义字符吗?

转载 作者:太空宇宙 更新时间:2023-11-03 16:05:43 25 4
gpt4 key购买 nike

我知道我需要在所有情况下转义这些:

quot  "
amp &
apos '
lt <
gt >

但是带有重音符号的国际字符,或者举几个例子的俄语字符呢?当我的编码指令设置为 UTF-8 时,是否需要对这种类型的字符进行转义?

如果我将编码指令设置为 ASCII 会怎样?我还需要转义所有这些字符吗?

这是我尝试使用 Nokogiri(lib2xml) 重现的 XML 示例(来自遗留系统):

<?xml version="1.0" encoding="UTF-8"?>
<DESCRIPTION lang="rus">
<SHORT_DESCRIPTION>&#1052;&#1054;&#1044;&#1059;&#1051;&#1068;- ELECTRONIC OUTPUT 120 V DC 5 mA</SHORT_DESCRIPTION>
<LONG_DESCRIPTION>&#1052;&#1054;&#1044;&#1059;&#1051;&#1068;- &#1058;&#1048;&#1055; ELECTRONIC OUTPUT &#1042;&#1061;&#1054;&#1044; 120 V DC &#1042;&#1067;&#1061;&#1054;&#1044; 5 mA &#1048;&#1057;&#1058;&#1054;&#1063;&#1053;&#1048;&#1050; &#1055;&#1048;&#1058;&#1040;&#1053;&#1048;&#1071; 120 V DC &#1044;&#1054;&#1055;&#1054;&#1051;&#1053;&#1048;&#1058;&#1045;&#1051;&#1068;&#1053;&#1040;&#1071; &#1044;&#1045;&#1058;&#1040;&#1051;&#1068; 1 ANALOG SM322-8S TOR</LONG_DESCRIPTION>
</DESCRIPTION>

您可以看到示例中的指令说的是 UTF-8,但它们已经转义了很多字符,Nokogiri 只有在我指定 ASCII 编码指令时才转义的字符。这就是让我困惑的地方。

编辑 2:如果我没有将编码指令传递给 Nokogiri,生成的 XML 会将所有俄语字符保留在其原生西里尔字母表中,但这与我需要复制的 XML 不一致。

最佳答案

如果出现以下任一情况,您只需要用字符引用来表示一个字符:

  • 它在当前上下文中会有特殊的含义(所以你列出的五个字符有时只需要编码)
  • 文件编码的字符编码中不存在

ASCII 中没有很多字符,因此如果您使用 ASCII 编码 XML,则必须对许多字符使用字符引用。

不要用 ASCII 编码您的 XML。 XML 的默认编码是 UTF-8,它得到了很好的支持。

关于ruby - 如果我的 XML 文档指令指定了 UTF-8 编码,我还需要转义字符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14286217/

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