许多在线图表显示拉丁字符的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。
答案 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()函数从一个表示转换为另一个表示。通常情况下,数据可能以组合形式到达,但如果您想覆盖所有基础,则在进行相等测试等任何操作之前,应将其标准化为组合形式。