XML 编码

简介: XML 编码

XML 文档可以包含非 ASCII 字符,比如挪威语 æ ø å,或者法语 ê è é。

为了避免错误,需要规定 XML 编码,或者将 XML 文件存为 Unicode。


XML 编码错误

如果您载入一个 XML 文档,您可以得到两个不同的错误,表示编码问题:

在文本内容中发现无效字符。

如果您的 XML 中包含非 ASCII 字符,且文件保存为没有指定编码的单字节 ANSI(或 ASCII),您会得到一个错误。

单字节编码属性的 XML 文件

相同的单字节没有编码属性的 XML 文件

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

如果您的 XML 文件保存为带有指定的单字节编码(WINDOWS-1252、ISO-8859-1、UTF-8)的双字节 Unicode(或 UTF-16),您会得到一个错误。

如果您的 XML 文件保存为带有指定的双字节编码(UTF-16)的单字节 ANSI(或 ASCII),您也会得到一个错误。

双字节没有编码的 XML 文件

相同的双字节具有单字节编码的 XML 文件


Windows 记事本

Windows 记事本默认会将文件保存为单字节的 ANSI(ASCII)。

如果您选择 "另存为...",就可以指定 ANSI、UTF-8、Unicode(UTF-16)或 Unicode Big。

将下面的 XML 保存为 ANSI、UTF-8 和 Unicode(注意文档不包含任何编码属性)。

<?xml version="1.0"?>

<note>

<from>Jani</from>

<to>Tove</to>

<message>Norwegian: æøå. French: êèé</message>

</note>

尝试将文件拖到您的浏览器,并查看结果。不同的浏览器会显示不同的结果。

不同编码的体验:

<?xml version="1.0" encoding="us-ascii"?>

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

请尝试:

带有正确编码的保存

带有错误编码的保存



结论

  • 始终使用编码属性
  • 使用支持编码的编辑器
  • 确保您知道编辑器使用什么编码
  • 在您的编码属性中使用相同的编码
相关文章
|
7月前
springmvc web.xml文件配置中文编码过滤器
springmvc web.xml文件配置中文编码过滤器
|
XML JSON 数据格式
netty系列之:netty中常用的xml编码解码器
在json之前,xml是最常用的数据传输格式,虽然xml的冗余数据有点多,但是xml的结构简单清晰,至今仍然运用在程序中的不同地方,对于netty来说自然也提供了对于xml数据的支持。 netty对xml的支持表现在两个方面,第一个方面是将编码过后的多个xml数据进行frame拆分,每个frame包含一个完整的xml。另一方面是将分割好的frame进行xml的语义解析。 进行frame拆分可以使用XmlFrameDecoder,进行xml文件内容的解析则可以使用XmlDecoder,接下来我们会详细讲解两个decoder实现和使用。
|
JSON Java 关系型数据库
常见Serialize技术探秘(ObjectXXStream、XML、JSON、JDBC byte编码、Protobuf)
目前业界有各种各样的网络输出传输时的序列化和反序列化方案,它们在技术上的实现的初衷和背景有较大的区别,因此在设计的架构也会有很大的区别,最终在落地后的:解析速度、对系统的影响、传输数据的大小、可维护性及可阅读性等方面有着较大的区别,本文分享一些我在一些常见序列化技术的分析和理解: 文章分成3个部分: 1、列举常见的序列化和反序列化方案(ObjectXXStream、XML、JSON) 2、M
1722 0
|
存储 XML 数据格式
|
XML 网络协议 数据格式
mina的编码和解码以及断包的处理,发送自定义协议,仿qq聊天,发送xml或json
最近一段时间以来,mina很火,和移动开发一样,异常的火爆。前面写了几篇移动开发的文章,都还不错,你们的鼓励就是我最大的动力。好了,废话少说。我们来看下tcp通讯吧。<br> tcp通讯对于java来说是很简单的。就是socket,也就是大家常说的套接字。大家不要把它看的很难。说白了tcp通讯其实就是数据流的读写。一条输入流,一条输出流。分别复杂发消息和接收消息。<br> 明白了这些,
2009 0
System.Xml.XmlException: 给定编码中的字符无效。 第 XX 行,位置 YY。
Invalid character in the given encoding. Line XX, position XX.解决方法 
1916 0