适用于XSLT转换的XML格式的UTF-8十六进制表示

时间:2017-08-18 21:11:21

标签: xml xslt encoding

许多在线图表显示拉丁字符的UTF-8编码对我来说有点混乱。

例如,对于UTF-8,eacute十六进制表示为c3a9:

UTF-8(十六进制)0xC3 0xA9(c3a9)

http://www.fileformat.info/info/unicode/char/c3a9/index.htm

所以我猜这会使它쎩如果它在XML中被重新定义为十六进制???这是UTF-8的XML表示标准吗?源系统将其发送为' E9'即使他们说它是UTF-8。无论如何,XMLSpy和Notepad ++显示它是E9。

你可以为我清除雾吗?感谢。

2 个答案:

答案 0 :(得分:1)

XML在数字字符引用中使用Unicode代码点,而不是编码的字节序列。由于é是U + 00E9,系统是正确的。

要关闭下一个问题,“é”中的所有六个字符是有效的UTF-8。

答案 1 :(得分:1)

为了稍微混淆这个问题,Unicode对许多重音字母有两种表示形式:组合和分解。对于E急性,组合表示是单个码点,U + 00E9(由八位组序列xC3 xA9以UTF-8表示)。分解的表示将字母和重音表示为单独的代码点(U + 0065 U + 0301)。您可以使用XPath 2.0 normalize-unicode()函数从一个表示转换为另一个表示。通常情况下,数据可能以组合形式到达,但如果您想覆盖所有基础,则在进行相等测试等任何操作之前,应将其标准化为组合形式。