登录  /  注册

XML编码基础实例详解

Y2J
发布: 2017-05-08 10:02:45
原创
1583人浏览过

 XML文档可以包含外文字符比如挪威语或者法语(中文当然也可以!这一部分还是不能照原文翻译,下面有些内容是我自己写的)
为了让你的解析器能够明白这些字符,你必须在XML文档中统一的字符编码标准。

Windows 95/98 记事本
Windows 95/98 记事本不能以Unicode的编码格式保存文件。
可以使用记事本来编辑和保存包含了外文字符的XML文档 (比如:挪威语或者法语或者中文)


小奀
小林
晚上一起去火锅呀


但是如果你用浏览器打开这个用记事本编辑过的XML文档,将会出现一个错误open it with IE 5.0。

在Windows 95/98 记事本中使用编码
Windows 95/98 记事本编辑XML文件必须进行编码属性设置。 
为了避免发生错误,可以在XML文档声明中加上一个encoding属性,指明此XML文档的编码类型,但是不要使用Unicode编码。 
下面的编码类型不会导致错误, 并且汉字显示正常:


下面的编码类型不会导致错误, 并且汉字显示正常:


下面的编码类型不会导致错误, 并且汉字显示不正常(乱码):


下面的编码类型不会导致错误, 并且汉字显示不正常(乱码):


下面的编码类型不会导致错误,并且汉字显示正常:


下面的编码类型会导致错误:


使用Windows 2000 记事本
Windows 2000 记事本可以以Unicode编码格式保存文件。
Windows 2000 的记事本支持Unicode字符集。如果使用Win2000的记事本以Unicode的编码格式保存XML文档(请注意这里在XML声明中没有编码信息):

小奀小林晚上一起去火锅呀

下面这个文件; note_encode_none_u.xml, 在IE5.0+中将不会出现错误,但如果你使用网景Netscape 6.2,就可能出错。读者比较 note_encode_none.xml 和 note_encode_none_u.xml这两个文件,如果单独看他们各自的源文件,是没有区别的,但为什么一个能显示,一个不能显示呢?答案就是Unicode字符集。

Windows 2000 记事本编码
Windows 2000记事本还可以以"UTF-16"编码格式保存文件。
如果你在XML文档中声明了编码属性而又以Unicode编码格式保存文件,将可能发生错误。
下面的代码将会导致错误:


下面的代码将会导致错误:


下面的代码将会导致错误:


下面这个文件; note_encode_utf16_u.xml, 将会在IE5.0+中显示正常,在网景Netscape 6.2浏览器中将会出现错误。


错误信息
当时用IE5.0或者更高版本浏览XML文档时,可能会遇到两中不同的编码错误:
在文本内容中发现一个非法字符(An invalid character was found in text content)。
如果你的XML文档和你的XML文档的编码格式不匹配就可能导致错误发生。通常情况是,XML文档包含一些“非英文”字符,并且使用了单字节编码的编辑器,而且没有在XML文档的声明中设置XML文档的编码格式。 

不支持从当前的编码格式转换成另一种编码格式(Switch from current encoding to specified encoding not supported)。
如果XML文档以Unicode/UTF-16编码格式保存,但是XML文档的声明中却设置了编码格式是一些单字节的编码(比如 Windows-1252, ISO-8859-1 或者  UTF-8);或者XML文档以单字节编码格式保存,但是XML文档的声明中却设置了编码格式是一些Unicode/UTF-16的编码形式,这样两种情况都会导致错误发生。

结论
结论:在保存XML文档之前在XML文档的声明中设置文档的编码格式,我的一些关于避免错误发生的建议:
使用一种支持Unicode编码格式的编辑器。 
确信你知道自己正在使用那种编码格式。 
在XML文档中使用属性声明设置编码格式。    

【相关推荐】

1.XML免费视频教程

2.XML技术手册

3.布尔教程燕十八XML视频教程

以上就是XML编码基础实例详解的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号