青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Jiang's C++ Space

創作,也是一種學習的過程。

   :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::

TinyXML是個好東西,這個不用我多說了,我用它做過好幾個項目,但這幾個項目都只是從xml文件中獲取信息,沒有涉及到寫文件,最近需要生成xml的配置文件,才注意到這個問題,那就是TinyXML似乎不能保存文件為UTF-8格式。

我用UltraEdit打開生成的xml文件,UltraEdit把它識別為ASCII格式的文本文件,而通過二進制查看,也確實如此,我看了下幫助文檔,也沒具體提及到這個問題。但后來我仔細整理了一下思路后,發覺這個其實不算什么問題,分析如下。

文檔上就說明了,TinyXML是完全支持UTF-8的,可以嘗試load一個UTF-8格式的xml文件,完全沒有問題,那現在問題是load了一個UTF-8文件后,文件中的字符串,在TiXmlDocument對象中,到底是什么格式?TinyXML在load它之后會不會直接把UTF-8格式轉為Unicode格式?——不會,為什么?因為TinyXML在編寫的時候是把自己定位為一個比較單純的C++ Lib,它沒有使用任何Windows相關的API,包括很重要的兩個編碼轉換函數WideCharToMultiByte和MultiByteToWideChar,它都沒用,對不同平臺,編碼轉換函數可能是不同的,因此TinyXML不會畫蛇添足地提供這個轉換,也就是說,如果你的xml文件(UTF-8格式)中如果有中文的話,用TinyXML加載進來之后,依舊是UTF-8的,不經過轉換直接print出來的話,就是亂碼了,所以要經過一個UTF-8到Unicode的轉換,轉換代碼我這里就不寫了。再說一下,TinyXML聲稱對UTF-8的支持表示它認識UTF-8的xml文件,但并不表示它自動對UTF-8的文本進行轉換。

好,再回到保存的問題上,其實你差不多想到了,應該怎么做,因為整個TinyXML其實并不計較內存中的文本究竟是什么內容,它都可以把文本當做是UTF-8(當然了,實際上把文本轉為UTF-8然后交給TinyXML的工作是我們的程序去完成),那我們可不可以說保存的xml文件其實就已經是UTF-8格式的?——答案是肯定的。而UTF-8的格式標志其實就是文件頭的三個字節:0xEF,0xBB,0xBF。有了這個頭,用UltraEdit打開這個xml,UltraEdit就把它認為是一個UTF-8的文本文件了。

這個改動非常簡單,稍微瀏覽下TinyXML的代碼就知道怎么改了,我下載的TinyXML是2.6.1版本的(我沒記錯的話),在tinyxml.cpp文件中搜索“useMicrosoftBOM”,把“useMicrosoftBOM = false;”這個語句改為“useMicrosoftBOM = true;”就可以了,好像一共才三處地方,十分簡單,代碼一看就懂,不多說了。

posted on 2010-07-05 15:31 Jiang Guogang 閱讀(6348) 評論(2)  編輯 收藏 引用 所屬分類: Windows Programming

評論

# re: 讓TinyXML保存文件為UTF-8格式 2010-07-05 16:05 Matthew
你真是細心啊,像我就不會想那么多  回復  更多評論
  

# re: 讓TinyXML保存文件為UTF-8格式 2010-07-06 09:09 mr.huang
差距啊,國哥。。  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区二区三区中文字幕| 久久久蜜桃一区二区人| 中文成人激情娱乐网| 亚洲茄子视频| 日韩一二在线观看| 亚洲激情电影在线| 亚洲美女黄色| 在线视频欧美一区| 亚洲午夜羞羞片| 欧美一区综合| 久久综合久久88| 亚洲第一黄色| 亚洲精品视频在线| 亚洲影院在线观看| 久久久在线视频| 欧美日韩日本国产亚洲在线| 国产精品久久久久9999| 伊人久久婷婷色综合98网| 亚洲欧洲精品一区二区三区 | 制服丝袜激情欧洲亚洲| 午夜精品久久久久久久99水蜜桃 | 日韩午夜中文字幕| 欧美一区三区三区高中清蜜桃 | 亚洲国产成人精品女人久久久| 99国产欧美久久久精品| 久久精品国产欧美亚洲人人爽| 亚洲黄色性网站| 性xx色xx综合久久久xx| 欧美日韩hd| 亚洲第一视频| 亚洲免费在线观看| 亚洲人在线视频| 久久精品中文字幕一区| 欧美视频四区| 91久久夜色精品国产九色| 香蕉av777xxx色综合一区| 91久久精品国产91久久| 久久久久综合一区二区三区| 国产精品免费网站在线观看| 亚洲欧洲精品一区二区| 久久久青草婷婷精品综合日韩| 亚洲精品免费一区二区三区| 久久亚洲一区二区| 国产一区二区三区日韩欧美| 亚洲男人天堂2024| 夜夜爽夜夜爽精品视频| 欧美欧美天天天天操| 亚洲国产日本| 欧美激情国产日韩| 久久夜色精品国产噜噜av| 国产日本精品| 性色av一区二区三区在线观看 | 国产精品久久久免费| a91a精品视频在线观看| 亚洲女性裸体视频| 一本久久综合| 欧美精品系列| 亚洲免费观看高清在线观看| 欧美黄色免费网站| 蜜桃av一区二区| 亚洲人成网站在线播| 欧美成人综合网站| 久久在精品线影院精品国产| 亚洲大片精品永久免费| 蜜月aⅴ免费一区二区三区| 欧美一区二区高清在线观看| 国产农村妇女精品一二区| 小黄鸭精品aⅴ导航网站入口| 中文精品视频一区二区在线观看| 欧美视频在线免费| 午夜在线成人av| 亚洲无人区一区| 国产欧美日韩综合| 久久美女艺术照精彩视频福利播放| 欧美一区二视频| 一区二区三区在线视频免费观看 | 一区二区三区日韩精品| 国产精品福利在线观看| 欧美一区二区精品久久911| 亚洲资源av| 狠狠色综合网| 亚洲国产精品一区制服丝袜| 你懂的一区二区| 在线亚洲观看| 翔田千里一区二区| 亚洲国产成人久久| 99精品国产热久久91蜜凸| 欧美三区在线观看| 久久精品中文| 久久综合九色| 亚洲天天影视| 久久精品国亚洲| 日韩视频免费大全中文字幕| 国产精品99久久不卡二区| 国产精品人人做人人爽| 狂野欧美激情性xxxx欧美| 欧美日韩在线精品| 欧美成人tv| 国产欧美一区在线| 亚洲国产成人在线视频| 国产精品一二三四| 亚洲精品一区二区三区婷婷月| 国产日产精品一区二区三区四区的观看方式 | 国产精品99一区二区| 欧美有码在线视频| 欧美成人dvd在线视频| 麻豆成人在线观看| 久久综合久久久久88| 99精品国产99久久久久久福利| 亚洲一二三区在线| 亚洲精品国产系列| 久久精品日产第一区二区三区| 日韩亚洲不卡在线| 久久激情五月激情| 午夜久久资源| 欧美精品日日鲁夜夜添| 久久精品亚洲一区二区| 欧美日韩色婷婷| 欧美激情一区二区三区全黄| 国产欧美一区二区三区在线看蜜臀 | 一本色道久久综合| 久久久精品国产99久久精品芒果| 中文网丁香综合网| 免费在线欧美视频| 久久免费视频在线观看| 国产精品麻豆成人av电影艾秋| 亚洲精品乱码久久久久| 亚洲国产精品成人精品| 久久成人人人人精品欧| 午夜精品久久久久久99热| 欧美精品日韩| 亚洲精品日日夜夜| 日韩视频免费在线| 欧美—级在线免费片| 国产视频久久| 午夜视频在线观看一区二区三区| 一区二区欧美激情| 欧美日本一区| 日韩一区二区精品| 亚洲一级片在线观看| 欧美日在线观看| 99视频在线观看一区三区| 亚洲一区二区三区精品在线观看| 欧美精品一区二区三区在线播放| 欧美大片91| 亚洲区一区二区三区| 欧美国产日产韩国视频| 91久久亚洲| 亚洲综合日韩| 国产精品一区二区你懂的| 亚洲制服av| 久久久av水蜜桃| 海角社区69精品视频| 久久综合九色九九| 最新日韩在线| 亚洲欧美综合一区| 一色屋精品视频在线看| 欧美成人第一页| 亚洲乱码国产乱码精品精可以看 | 午夜国产精品影院在线观看| 欧美一区二区视频在线| 国产欧美一区二区精品忘忧草 | 久久久精品性| 在线观看av不卡| 蜜桃精品一区二区三区| 亚洲黑丝一区二区| 亚洲综合成人在线| 国产最新精品精品你懂的| 久热国产精品视频| 亚洲精品乱码久久久久久久久 | 欧美人与禽性xxxxx杂性| 亚洲精选视频免费看| 欧美在线免费观看| 亚洲黄色免费| 欧美午夜美女看片| 久久精品日韩| 日韩午夜电影| 久久一区二区三区国产精品| 亚洲精品视频免费| 国产精品入口麻豆原神| 你懂的亚洲视频| 亚洲欧美一区二区在线观看| 欧美电影在线观看完整版| 91久久精品久久国产性色也91| 欧美日韩国产一区二区三区地区| 亚洲影院一区| 亚洲成色www8888| 亚洲天堂免费观看| 亚洲韩国精品一区| 国产精品一区在线观看| 美国成人直播| 亚洲欧美视频在线观看视频| 亚洲人成免费| 久久综合福利| 午夜欧美大尺度福利影院在线看 | 韩国一区二区三区在线观看| 欧美日韩精品一区二区三区| 久久精品视频亚洲| 亚洲欧美在线x视频| 亚洲精选成人|