今使用jdom生成xml檔案的時候,總是出現0x0,0x8為非法字元,經過搜尋,問題原因及解決方法如下:
原因:
xml中需要過濾的字元分為兩類,一類是不允許出現在xml中的字元,這些字元不在xml的定義範圍之內。另一類是xml自身要使用的字元,如果內容中有這些字元則需被替換成別的字元。
第一類字元:
對於第一類字元,我們可以通過w3c的xml文件來檢視都有哪些字元不被允許出現在xml文件中。
xml允許的字元範圍是「#x9 | #xa | #xd | [#x20-#xd7ff] | [#xe000-#xfffd] | [#x10000-#x10ffff]」。因此我們可以把這個範圍之外的字元過濾掉。
需要過濾的字元的範圍為:
//x00-//x08
//x0b-//x0c
//x0e-//x1f
第二類字元:
對於第二類字元一共有5個,如下:
字元 html字元 字元編碼
和(and) & & &
單引號 』
' '雙引號 」 " "
大於號 > > >
小於號 < < <
我們只需要對這個五個字元,進行相應的替換就可以了
解決方法:
用正規表示式替換,
用正規表示式表示如下:[<>&'/"//x00-//x08//x0b-//x0c//x0e-//x1f]
xml中的非法字符集範圍
今使用jdom生成xml檔案的時候,總是出現0x0,0x8為非法字元,經過搜尋,問題原因及解決方法如下 原因 xml中需要過濾的字元分為兩類,一類是不允許出現在xml中的字元,這些字元不在xml的定義範圍之內。另一類是xml自身要使用的字元,如果內容中有這些字元則需被替換成別的字元。第一類字元 對於...
xml中的非法字元
今使用jdom生成xml檔案的時候,總是出現0x0,0x8為非法字元,經過搜尋,問題原因及解決方法如下 原因 xml中需要過濾的字元分為兩類,一類是不允許出現在xml中的字元,這些字元不在xml的定義範圍之內。另一類是xml自身要使用的字元,如果內容中有這些字元則需被替換成別的字元。第一類字元 對於...
各字符集編碼範圍總結
我有刪減,只帖出常用的。原文有非常詳細的日文的。utf8 code x01 x7f xc0 xdf x80 xbf xe0 xef x80 xbf xf0 xff x80 xbf utf16 code x00 xd7 xe0 xff xd8 xdf x00 xff jiscode x20 x7e x...