zoukankan      html  css  js  c++  java
  • 【转】XML 特殊字符处理

    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以下的字符进行编码。

  • 相关阅读:
    人生苦短_我用Python_javascript_var_function_简单笔记_001
    人生苦短_我用Python_logging日志操作_011
    人生苦短_我用Python_configparser/yaml对配置文件读取/写入操作_010
    人生苦短_我用Python_pymysql库对Mysql数据库操作_009
    人生苦短_我用Python_openpyxl库读取Excel文件数据_008
    人生苦短_我用Python_Try_Exception异常捕捉_007
    命令行下编译打包安卓apk
    构建微服务实验环境
    Docker的安全问题以及一些预防方案
    Go 微服务实践
  • 原文地址:https://www.cnblogs.com/SummerRain/p/3551015.html
Copyright © 2011-2022 走看看