有关XML的编码问题

转载 2006年05月26日 15:19:00

        由于XML文档中可以包含外语字母,如挪威语 ??? 或法语 êèé,因此要让你的XML分解器理解这些字母,就应该把XML文档存储成Unicode(统一的字符编码标准)。

       1、Windows 95/98 记事本
  Windows 95/98 记事本不能将文件保存成Unicode 格式。你可以用Notepad 编辑和保存包含外语字母(如挪威语和法语的??? 和 êèé)的XML 文档,
  <?xml version="1.0"?>
  <note>
  <from>Jani</from>
  <to>Tove</to>
  <message>Norwegian: ???. French: êèé</message>
  </note>

  但是如果你保存文件并用IE 5.0打开它,就会得到一个错误信息。


  2、带有编码的Windows 95/98 记事本
  Windows 95/98 记事本文件必须用编码属性保存。 要避免这个错误,你可以向你的XML声明中加上一个编码属性,但是不能使用Unicode。

  这样的编码(用IE 5.0打开它), 就不会给出一个错误信息:
  <?xml version="1.0" encoding="windows-1252"?>

  这样的编码(IE 5.0打开它), 也不会给出错误信息:
  <?xml version="1.0" encoding="ISO-8859-1"?>

  这样的编码(IE 5.0打开它), 会给出一个错误信息:
  <?xml version="1.0" encoding="UTF-8"?>

  这样的编码(IE 5.0打开它), 会给出一个错误信息:
  <?xml version="1.0" encoding="UTF-16"?>


  3、Windows 2000 记事本
  Windows 2000 记事本可以将文件保存成Unicode。Windows 2000 中的记事本编辑器支持 Unicode。如果你选择要将这个XML文件保存成Unicode(注意文档中不包含任何编码属性):

  <?xml version="1.0"?>
  <note>
  <from>Jani</from>
  <to>Tove</to>
  <message>Norwegian: ???. French: êèé</message>
  </note>

  你可以用IE 5.0 打开它,而不会得到错误信息。


  4、带有编码的Windows 2000 记事本
 Windows 2000 记事本用"UTF-16"编码将文件保存为Unicode。如果你向保存为Unicode的XML文件中增加一个编码属性,windows 编码值就会产生一个错误。

  这样的编码(IE 5.0打开它), 会给出一个错误信息:
  < ?xml version="1.0" encoding="windows-1252"?>

  这样的编码(IE 5.0打开它), 会给出一个错误信息:
  < ?xml version="1.0" encoding="ISO-8859-1"?>

  这样的编码(IE 5.0打开它), 会给出一个错误信息:
  < ?xml version="1.0" encoding="UTF-8"?>

  这样的编码(IE 5.0打开它), 不会给出一个错误信息:
  < ?xml version="1.0" encoding="UTF-16"?>

  5、错误信息
  如果你试图向Internet Explorer 5中装载一个XML文档,你会得到两个不同的错误信息表示编码的问题:

        在文本内容中发现了一个无效字符: 如果XML文档中的一个字符与编码属性不匹配,你就会得到这个错误信息。通常,如果你的XML 文档中包含外语字母并且文件是用记事本这样的单字节编码编辑器保存的,而且没有规定编码属性的话,就会得到这样的错误信息。从当前编码转换到不支持的指定编码: 如果你的文件保存为Unicode/UTF-16,但是编码属性指定了单字节编码,例如Windows-1252、 ISO-8859-1或UTF-8,你就会得到这样的错误信息。另外如果你的文档是用单字节编码保存的,但是编码属性指定了双字节编码例如UTF-16的话,你也会得到这样的错误信息。
  
        结论
        结论就是编码属性必须指定保存文档时所使用的编码。为避免这类错误,我的建议是: 总是将XML文件保存成没有任何编码信息的Unicode。使用一个支持Unicode的编辑器(Windows 2000 记事本就行),总是省略编码属性。

建立xml文件时遇到的编码问题和解决方法

建立xml文件时遇到的问题和解决方法 建立txt文件,输入如下格式的代码,再改后缀名为.xml格式   当用ie打开时,会报错如下:   解决方法:  把第一行的encoding的编码方式...
  • baoxiaofeicsdn
  • baoxiaofeicsdn
  • 2015年09月10日 09:32
  • 1101

xml中文出错问题解决方法

初学XML的时候会经常出现当XML的节点内容中包含中文的时候出错的问题。用专业的XML开发工具时就不会出现问题,但用文本编辑器编辑的很容易出现这个问题。实际上这并不难解决,这是由于声明的编码与文件默认...
  • banmuhuangci
  • banmuhuangci
  • 2006年09月29日 18:11
  • 4437

XML文件的编码问题

这两天在项目处理一个解析编码格式为ANSI的xml文件时,遇到了一些问题,现将分析过程总结如下。 通过win7自带的记事本或者notepad++创建一个xml文件test_source: co...
  • u010832643
  • u010832643
  • 2014年06月06日 00:50
  • 4217

关于编码问题的深度解析

关于编码问题(乱码)的深度解析 编码问题的产生其实都是I/O操作导致的问题,也就是说所有I/O存在的地方就有可能会出现编码问题。 所以要想深度解析编码问题,我们就必须回到源码的实现机制,找到I/O操...
  • sundaysunshine
  • sundaysunshine
  • 2016年12月31日 12:35
  • 430

有关MySql的编码问题

1、导入导出的编码设定 数据导出:mysqldump -uroot -p123456 –default-character-set=utf8库名>database_dump.sql  数据导入:m...
  • jonahzheng
  • jonahzheng
  • 2012年11月07日 11:21
  • 631

XML编码问题

昨天一个问题浪费了两个小时
  • ashen2011
  • ashen2011
  • 2014年05月17日 20:52
  • 211

XML序列化对象时出现中文乱码

public static String ToXmlText(Object obj)throws Exception { ByteArrayOutputStream bos= new...
  • mangmang2012
  • mangmang2012
  • 2012年08月06日 17:36
  • 3741

解析XML的编码问题

用如下代码解析XML串:byte[] bytes = source.getEx_detail().getBytes();in = new ByteArrayInputStream(bytes);str...
  • logsharp
  • logsharp
  • 2011年05月26日 14:27
  • 296

关于xml的编码问题

昨天在进行萧山校产的报表配置的时候遇到一个问题,我要求输出的xml文件中保留我原来的内容(内容中包括有很多的空格),但是dom4j在输出文件时自动将这些空格去除了,经研究有以下发现: 当我们在用dom...
  • KarlDoenitz
  • KarlDoenitz
  • 2012年08月14日 12:07
  • 486

有关apache mina框架的编码问题

直接上代码: public class MinaServer { public static void main(String[] args) { IoAcceptor acce...
  • FloatFei
  • FloatFei
  • 2014年09月02日 17:49
  • 284
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:有关XML的编码问题
举报原因:
原因补充:

(最多只允许输入30个字)