SummerRain

软件开发/信息安全
随笔 - 246, 文章 - 0, 评论 - 240, 阅读 - 36万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

【转】XML 特殊字符处理

Posted on   SummerRain  阅读(3778)  评论(0编辑  收藏  举报

from: http://gdutlzh.blog.163.com/blog/static/164746951201222934328455/ 

1.

在XML文件中,如果内容包含一些特殊字符会导致XML文件无法解释。

  (1). 可以对特殊字符直接进行转义

以下5个字符为需要进行转义的字符

 字符  转义后 编码 
 & & &#38 
 ' '  &#39 
 " "  &#34 
 > >  &#62 
 < &lt;  &#60 

(2). 将内容放至CDATA中

CDATA 以"<![CDATA[" 标记开始,以"]]>"标记结束

==============================================

以上两种方法可以解决大部分的问题,网上资料还提到另外一类特殊字符,将相关的文章转载一下

 

转载自:http://www.jzxue.com/Html/XML/122115365011021.html

XML文档中,一些特殊ASCII字符,显示会有问题,如音乐符号,即使包含在< ! [CDATA[ ] ]中也不行,提示javascript错误:文本内容中发现无效字符。 
注:本文中的特殊字符主要是指音乐符号等ASCII码小于32的其中一些字符 


2.参考文档 
1)网址:http://www.pcdog.com/p/html/20041215/151220044979_1.htm 
这篇文章与本文要解决的特殊字符不是一类问题,仅供参考 


3.最终解决方案 
1)在网上找到一张ASCII字符表,这个表是解决问题的关键,地址如下: 
http://www.51ajax.com/demo/ascii/ascii.htm 
ASCII 码大致可以分作三部分组成。  

第一部分由 00H 到 1FH 共 32 个,一般用来通讯或作为控制之用,有些字符可显示于屏幕,有些则无法显示在屏幕上,但能看到其效果(例如换行字符、归位字符)。 
第二部分是由 20H 到 7FH 共 96 个,这 95 个字符是用来表示阿拉伯数字、英文字母大小写和底线、括号等符号,都可以显示在屏幕上。 
第三部分由 80H 到 0FFH 共 128 个字符,一般称为『扩充字符』,这 128 个扩充字符是由 IBM 制定的,并非标准的 ASCII 码。这些字符是用来表示框线、音标和其它欧洲非英语系的字母。 


2)具体方法 
从第一部分的表中可以看到音乐符号的ASCII是14(十进制),产生问题的原因在于ASCII码小于32的符号有些在屏幕上显示时会有问题,解决的方法如下: 
在提交入库前用Javascript将ASCII码小于32的字符用escape()函数编码,然后入库,如编码后将变为%0E,其它字符不变,这样在XML中显示不会出现问题,当用Javascript对XML进行解析时,再用unescape()函数对内容进行解码,这样会将%0E显示为。 
我写了一个Javascript函数(只适用于少量数据),可以实现对ASCII码在32以下的字符进行编码。

 

(评论功能已被禁用)
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示