如何讓Expat支援中文XML

2021-03-31 22:13:21 字數 969 閱讀 8810

剛剛學習使用expat,卻發現expat並不支援中文。後來查詢相關資料,得知expat不支援gb2312編碼格式,主要支援utf-8編碼格式。然而我們在程式中傳遞資料時,往往是用的gb2312格式文字的,於是想找出辦法解決之,想到兩種辦法:

1、改寫expat源**,這樣效率高,但不方便今後expat**的公升級;

2、首先將gb2312格式的文字轉換為utf-8格式文字,然後讓expat解析,解析出的資料再轉換為gb2312格式以方便處理。效率較第一種方法低。

最終選擇了第二種方法解決該問題。

示例**:http://download.csdn.***/source/1452739

expat源**:http://download.csdn.***/source/1450419

**中ccodingconv為gb2312和utf-8互相轉換的類,cgb2312xml為接收解析資料的類,使用sax方式解析,該類支援gb2312格式的xml檔案,當然也可以支援utf-8格式的xml檔案。

為便於理解,demo程式將解析出的xml資料仍按xml的樣子輸出到螢幕上,且將"<"、">"符號換為了"["、"]"。

以下便是輸出結果:

[ library ]

[book format="16開" pages="900"]

[!--this is a ***ment demo--]

[書名 ]c++程式語言(特別版)[/書名 ]

[author ]

[name ]bjarne stroustrup[/name ]

[nationality ]united states[/nationality ]

[/author ]

[翻譯 ]

[譯者 ]裘宗燕[/譯者 ]

[出版社 ]機械工業出版社[/出版社 ]

[/翻譯 ]

[/book ]

[/library

]

讓mysql支援中文

我用spring ibatis mysql搭了乙個框架,但是中文顯示亂碼。解決問題的路徑 1 在資料庫連線的url 後加上 useunicode true characterencoding utf8 2 修改mysql的配置檔案my.ini 在 client 後加上default characte...

讓irrlicht 支援中文

看了官方引擎顯示文字的方法居然是影射位圖。實在悲劇,開發者居然沒考慮其他語言的問題,因為很多語言根本不由小量的字母組成,就算硬用中文字影射的方法,這個檔案不知道會有多大。再就是在渲染環境裡我們也沒可能讓美工來打字吧?再退一步好了,如果要設定字型大小這樣的設定,影射根本不實際。無奈下在官方的找有無方法...

讓rhel支援中文

和windows不同的是,即使是英文版本的linux也支援大都數國家的語言,當然包括中文 要讓已經安裝好的linux支援中文,只需要找到光碟上的 個中文支援字型包安裝上即可.檔名如下,注意不同版本檔案明後面數字部分可能會不同,其代表版本號.下面是5.0版本下的中文包檔名.fonts chinese ...