XML编码

20 XML编码

XML文档可能包含外国字符,比如挪威语,或者法语。

为了让XML解析器读懂这些字符,您需要把XML文档存为Unicode。

 

20.1 Windows 2000记事本

Windows 2000记事本可以把文件保存为Unicode。

将XML文件保存为Unicode(注意,此文档未包含任何编码属性):

<?xml version="1.0"?>

<note>

<from>John</from>

<to>George</to>

<message>French: êèé</message>

</note>

上面的文件,在IE 5+、Firefox或者Opera中不会出错,但是在Netscape6.2中会出错。

 

20.2 Windows 2000 Notepad with Encoding

Windows 2000 记事本使用 "UTF-16" 编码将文件保存为 Unicode。

如果您为保存为 Unicode 的 XML 文件添加了一个编码属性,windows 的编码值可能产生错误。

下面的编码,不会报错:

<?xml version="1.0" encoding="windows-1252"?>

下面的编码,不会报错:

<?xml version="1.0" encoding="ISO-8859-1"?>

下面的编码,不会报错:

<?xml version="1.0" encoding="UTF-8"?>

下面的编码,在IE 5+、Firefox或者Opera重不会发出错误信息,但是在Netscape 6.2中会报错。

<?xml version="1.0" encoding="UTF-16"?>

 

20.3 错误消息

如果您试图向IE中载入XML文档,可能会得到两种指示编码问题的错误:

在文本内容中发现非法字符:

如果XML文档中的某个字符不编码属性不匹配,您就会得到这个错误消息。通常,当XML文件中含有外国字符,且当文件使用类似记事本的单字节编码编辑器保存,以及没有指定编码属性旪,您就会得到这个错误消息。

将当前编码切换为不被支持的指定编码:

如果您的文件被保存为Unicode/UTF-16,但是编码属性被指定为单字节编码(比如Windows-1252、ISO-8859-1或者UTF-8)旪,那么您就会得到这个错误消息。或者当您的文档被保存为单字节编码,但编码属性被指定为双字节编码(比如UTF-16)旪,也会得到这个错误消息。

 

20.4 结论

结论是:编码属性应当被指定为文档被保存旪所使用的编码。我最好的避免错误的建议是:

 

 使用支持编码的编辑器;

 

 确定编辑器使用的编码;

 

 在您的 XML 文档中使用相同的编码属性。

posted on 2012-07-05 16:16  流星落  阅读(281)  评论(0编辑  收藏  举报

导航