【轉】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以下的字符進行編碼。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM