日期:2014-05-18 浏览次数:20475 次
XML 文档可以包含非 ASCII 字符,比如法语。 为了避免错误,需要规定 XML 编码,或者将 XML 文档存为 Unicode。 Windows 记事本 Windows 记事本默认会将文件保存为单字节的 ANSI (ASCII)。 如果选取文件菜单中的“另存为”命令,就可以规定双字节 Unicode (UTF-16)。 将下面的 XML 文件保存为 Unicode (注意文档不包含任何 encoding 属性): <?xml version="1.0"?> <note> <from>John</from> <to>George</to> <message>French: êèé</message> </note>上面的文件,note_encode_none_u.xml 不会出错。但是如果规定了单字节编码就会出错。 下面的编码(打开它),不会报错: <?xml version="1.0" encoding="windows-1252"?>下面的编码(打开它),不会报错: <?xml version="1.0" encoding="ISO-8859-1"?>下面的编码(打开它),不会报错: <?xml version="1.0" encoding="UTF-8"?>下面的编码(打开它),不会报错: <?xml version="1.0" encoding="UTF-16"?>错误消息 如果您试图向 IE 中载入 XML 文档,可能会得到两种指示编码问题的错误: 在文本内容中发现非法字符 如果 XML 文档中的某个字符与编码属性不匹配,您就会得到这个错误消息。通常,当 XML 文件中含有外国字符,且当文件使用类似记事本的单字节编码编辑器保存,以及没有指定编码属性时,您就会得到这个错误消息。 将当前编码切换为不被支持的指定编码 如果您的文件被保存为 Unicode/UTF-16,但是编码属性被指定为单字节编码(比如 Windows-1252、ISO-8859-1 或者 UTF-8)时,那么您就会得到这个错误消息。或者当您的文档被保存为单字节编码,但编码属性被指定为双字节编码(比如 UTF-16)时,也会得到这个错误消息。 结论 结论是:编码属性应当被指定为文档被保存时所使用的编码。我最好的避免错误的建议是: ?使用支持编码的编辑器 ?确定编辑器使用的编码 ?在您的 XML 文档中使用相同的编码属性