XML 解析中,如何排除控制字元

2022-03-06 06:53:45 字數 1876 閱讀 3814

今天在解析乙個中文的 xml時,始終報錯 pcdata invalid char value 21 in entity ,查詢了一下這個 21 的ascii 值,

發現是:

0001 0101

2115

nak␕

確認失敗回應

怎麼會有這樣奇怪的字元,我也搞不清楚。google 一下這個錯誤,發現很多**都報這樣的錯誤,就是沒有一篇文章

說明為什麼出錯了。折騰了半天,後來又看了libxml的源**,發現下面的字元要在字串裡面排除掉:

二進位制十進位制

十六進製制

縮寫可以顯示的表示法

名稱/意義

0000 0000000

nul␀

空字元(null)

0000 0001101

soh␁

標題開始

0000 0010202

stx␂

本文開始

0000 0011303

etx␃

本文結束

0000 0100404

eot␄

傳輸結束

0000 0101505

enq␅

請求0000 0110606

ack␆

確認回應

0000 0111707

bel␇

響鈴0000 1000808

bs␈退格0000 1011

110bvt␋

垂直定位符號

0000 1100

120cff␌

換頁鍵0000 1110

140eso␎

取消變換(shift out)

0000 1111

150fsi␏

啟用變換(shift in)

0001 0000

1610

dle␐

跳出資料通訊

0001 0001

1711

dc1␑

裝置控制一(xon 啟用軟體速度控制)

0001 0010

1812

dc2␒

裝置控制二

0001 0011

1913

dc3␓

裝置控制三(xoff 停用軟體速度控制)

0001 0100

2014

dc4␔

裝置控制四

0001 0101

2115

nak␕

確認失敗回應

0001 0110

2216

syn␖

同步用暫停

0001 0111

2317

etb␗

區塊傳輸結束

0001 1000

2418

can␘

取消0001 1001

2519em␙

連線介質中斷

0001 1010

261a

sub␚

替換0001 1011

271b

esc␛

跳出0001 1100

281cfs␜

檔案分割符

0001 1101

291dgs␝

組群分隔符

0001 1110

301ers␞

記錄分隔符

0001 1111

311fus␟

單元分隔符

0111 1111

1277f

del␡

刪除大多數都在 31 以前的幾個字元,注意,還有個字元 127 要去掉。去掉的方法我是用正則,用下面的正則就可以

去掉了:[\\x00-\\x08\\x0b-\\x0c\\0e-\\1f\\7f]。

希望對大家有用。

XML 解析中,如何排除控制字元

今天在解析乙個中文的 xml時,始終報錯 pcdata invalid char value 21 in entity 查詢了一下這個 21 的ascii 值,發現是 0001 0101 2115 nak 確認失敗回應 說明為什麼出錯了。折騰了半天,後來又看了libxml的源 發現下面的字元要在字串...

字元中包含不顯示的控制字元

碰到乙個unicode字符集的問題,記錄一下 拷貝了乙個手機號直接貼上到平台 儲存,結果傳送簡訊時該手機號接收不到,網上查了才知道原來拷貝到手機號包含了不顯示unicode字元 u202d 一般用到unicode 控制字元有 1 rlo code u202e html 開始從右到左的文字 2 lro...

js中如何控制字串開頭以特定字元開頭

js中如何控制字串開頭以特定字元開頭 1 最好用正則.var pattern abcd.這句話的意思是.必須以 adcd 字串開始,後面無論什麼字元.if pattern test teststr 為true就是成功 else 2 採用substring function get xx else 例...