在XML文件中设置编码

时间:2010-10-19 09:49:27

标签: xml encoding

哪些是有效的xml编码字符串?例如,指定UTF-8的方式是什么:

  • encoding="utf8"
  • encoding="utf8"

或Windows 1251:

  • encoding="windows-1251"
  • encoding="windows1251"
  • encoding="cp-1251"

我正在创建一个字符解码器以及一个xml解析器。因此,我需要能够根据encoding属性中的值设置StreamReader的编码。

我能找到官方编码字符串列表的任何想法吗?

我能找到的最好的是this,但它似乎是IE特定的。

谢谢!

3 个答案:

答案 0 :(得分:7)

如果全部失败,请阅读规范: - )。

  

4.3.3实体中的字符编码

     

XML中的每个外部解析实体   文档可能使用不同的编码   因为它的角色。

     

[...]

     

在编码声明中,值   “UTF-8”,“UTF-16”,“   ISO-10646-UCS-2“和”   ISO-10646-UCS-4“应该用于   各种编码和   Unicode / ISO / IEC的转换   10646,值“ISO-8859-1”,“   ISO-8859-2“,......”ISO-8859- n“   (其中n是部件号)应该是   用于ISO 8859的部件,和   值“ISO-2022-JP”,“   Shift_JIS“和”EUC-JP“应该是   用于各种编码形式   JIS X-0208-1997。

     

推荐   该字符编码已注册   (作为charsets)与互联网   指定号码管理局   IANA-CHARSETS,除了那些   列出,使用他们的   注册名称;其他编码   应该使用以“x-”开头的名称   前缀。

来源:http://www.w3.org/TR/REC-xml/

所以UTF-8写成encoding="UTF-8"

对于上面未列出的其他字符集,请使用IANA character set list中提供的名称。

字符集名称中的字母不重要:“然而,没有区别 在使用大写和小写字母之间。“(IANA字符集列表)。所以你也可以写 encoding="uTf-8"如果您愿意的话; - )。

BTW:你真的,确实确定你想要编写自己的XML解析器吗?这听起来像是重新发明轮子。

答案 1 :(得分:3)

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

对于utf-8应该没问题。

答案 2 :(得分:0)

使用命令locale -A查看所有编码: http://dwbitechguru.blogspot.ca/2014/07/check-foreign-characters-support-on.html

选项A: 要使用以下标记添加编码:

  

您可以使用XML spy编辑dtd中的编码属性。

相关链接: http://dwbitechguru.blogspot.ca/2014/07/issue-xml-reader-error.html