首页 > 其他分享 >XML指南——XML编码

XML指南——XML编码

时间:2022-11-16 15:00:44浏览次数:75  
标签:XML 编码 文档 Unicode 格式 记事本 指南


XML文档可以包含外文字符比如挪威语或者法语(中文当然也可以!这一部分还是不能照原文翻译,下面有些内容是我自己写的)

为了让你的解析器能够明白这些字符,你必须在XML文档中统一的字符编码标准。


Windows 95/98 记事本

Windows 95/98 记事本不能以Unicode的编码格式保存文件。

可以使用记事本来编辑和保存包含了外文字符的XML文档 (比如:挪威语或者法语或者中文)

<?xml version="1.0"?><note><from>小奀</from><to>小林</to><message>晚上一起去火锅呀</message></note>

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


在Windows 95/98 记事本中使用编码

Windows 95/98 记事本编辑XML文件必须进行编码属性设置。

为了避免发生错误,可以在XML文档声明中加上一个encoding属性,指明此XML文档的编码类型,但是不要使用Unicode编码。

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

<?xml version="1.0" encoding="gb2312"?>

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

<?xml version="1.0" encoding="gbk"?>

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

<?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"?>



使用Windows 2000 记事本

Windows 2000 记事本可以以Unicode编码格式保存文件。

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

<?xml version="1.0"?>
<note>
<from>小奀</from>
<to>小林</to>
<message>晚上一起去火锅呀</message>
</note>

下面这个文件; 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编码格式保存文件,将可能发生错误。

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

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

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

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

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

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

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

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



错误信息

当时用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文档中使用属性声明设置编码格式。

标签:XML,编码,文档,Unicode,格式,记事本,指南
From: https://blog.51cto.com/u_627724/5856429

相关文章

  • XML指南——XML CDATA
    在XML文档中的所有文本都会被解析器解析。只有在CDATA部件之内的文本会被解析器忽略。解析数据XML解析器通常情况下会处理XML文档中的所有文本。当XML元素被解析的时候,XML......
  • log4j2.xml 使用 application.yml 配置的属性
    转自:https://blog.csdn.net/xiaokanfuchen86/article/details/126695797 log4j2.xml 是不归spring管理的,所以也就没法读取到application.yml里面的配置了。解决方......
  • 浅析PM2实用入门指南
    PM2是一个守护进程管理器,可以用它来管理你的node进程,负责所有正在运行的进程,并查看node进程的状态,也支持性能监控,负载均衡等功能。使用起来也是非常简单一 特性​日志管理......
  • mybatis XML 使用 case when 代替多个if
    不建议使用<selectid="findActiveBlogLike"resultType="Blog">SELECT*FROMBLOGWHEREstate=‘ACTIVE’<iftest="title!=null">AND......
  • Linux性能优化的全景指南
    Linux性能优化性能优化性能指标高并发和响应快对应着性能优化的两个核心指标:吞吐和延时应用负载角度:直接影响了产品终端的用户体验系统资源角度:资源使用率、饱和度等性能问......
  • Visual Studio C++ 默认 UTF-8 编码及 *.editorconfig 统一代码格式
    ​转载请注明原文链接:https://www.cnblogs.com/mechanicoder/p/16894144.html1.问题由来背景:团队使用VisualStudio进行跨平台项目开发。遇到的问题:编码:Windows......
  • C#编码规范
    为什么要规范编码?方便维护、便于阅读和理解代码。注释所有的方法和函数都应该在前面添加注释,表明方法用来干什么。当参数的功能不明显时、过程希望参数在......
  • APICloud APP开发指南
    移动端开发大致分为以下四个级别,下面分别介绍了每个级别需要了解和掌握的内容:初级熟悉HTML/CSS/JS前端技术,了解APICloud开发,能使用开发工具运行和预览模板项目,能使......
  • 应用程序现代化权威指南
    什么是应用程序现代化简单来说,软件现代化、老旧系统现代化或老旧应用现代化都是指替换或升级旧软件的过程。根据系统的情况和公司的情况,对软件进行现代化改造的方案从轻微......
  • 常见编码的学习
    一:基本知识   1:bit最小的单元字节byte机器语言的单位1byte=8bits1KB=1024byte1MB=1024KB1GB=1024MB   2:二进制 binary八进制 octal十进制 decim......