0xF8是UTF-8编码的XML文档中的有效字节吗?

时间:2011-01-26 18:17:57

标签: c# xml encoding utf-8

我收到一份声称为UTF-8(<?xml version="1.0" encoding="UTF-8"?>)的文件。我在过去遇到过一些问题,其中发送方的编码声明并不是那么可靠(即文件被声明为具有给定的编码而事实上它们没有),所以我尝试使用{{3}进行检查根据此工具,0xF8字节表示此文档不是UTF-8编码的。

然而,恰恰相反,http://utf8checker.codeplex.com/将挪威字符'ø'列为UTF-8中的0xF8。 (该页面是挪威语,但是,我所指的数据来源于页面底部的表格。)

任何人都可以帮我解决这个问题吗?我在这里感到很困惑。

谢谢!

3 个答案:

答案 0 :(得分:7)

ø是U + 00F8,因为它不是ASCII,所以它不能是单个UTF-8代码单元。它由0xC3 0xB8 in UTF-8表示。因此,如果您在某个文档中单独使用0xF8,是的,它是无效的UTF-8。

该文档似乎使用Latin-1或Windows代码页1252。

答案 1 :(得分:5)

我不认为该页面非常可靠,它也说“UTF-8 = UCS-1”。

检查Wikipedia,F8只能用作5字节UTF-8序列的第一个字节,但目前不存在需要5字节编码的Unicode字符。所以没有。

答案 2 :(得分:3)

utf8checker工具是正确的,您所指的页面是错误的。 'ø'的UTF-8表示是0xC3 0xB8(两个字节)。

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