如何將UTF8轉Big5 |
答題得分者是:aftcast
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
我透過Indy TIdHTTP Get網頁資料,取得的資料包含中英文數字夾雜,其中中文應該為UTF8 (我不太確定,格式如\u611b)
我使用bcb 2010的ShowMessage("愛")可正常show出"愛"這個中文字 但是我卻沒辦法透過Utf8Decode或Utf8ToAnsi轉成中文字,搜尋了一整晚,似乎用這兩個function就可以直接轉換,但我就是沒辦法轉換 我的作法是: [code cpp] AnsiString body = IdHTTP->Get (url); Memo->Text = Utf8Decode (body); //無法轉換成中文 [/code] 請問是該格式並非utf8還是需要哪些動作才可轉換? 謝謝 |
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
您好,
請問你有plurk嗎? 我是讀取plurk遇到的,他是utf-8格式,只要是中文就會有該問題 [code cpp] AnsiString body ="愛"; Memo->Text = Utf8Decode (body); //請問您是否可以正常顯示中文 //如果是Memo->Text ("愛")就可以正常顯是 [/code] ===================引 用 careychen 文 章=================== HI, 請問一下,有相關的網頁可提供借測嗎? 目前小弟用 Delphi 2010 的去讀幾個網頁都還正常,所以也許沒碰到您說的頁面。
編輯記錄
GGL 重新編輯於 2010-03-28 01:20:33, 註解 無‧
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
plurk 應該是utf8沒錯。但是否indy get 後傳回的是否已經不是utf8? 2010上的indy我沒使用過。但看來你需要自己去debug,或者把indy上的help看仔細一點,看是否某些方法已經自動的會把utf8轉成unicode?
不過照你開始說明你的,你說你看到的 \u???? 那個字的確就是unicode沒錯。而utf8這總編碼是不固定長度的,1byte至3、4bytes(最多幾bytes我忘了),但中文一般是3bytes較多。而unicode是固定在2bytes(精準一點講是ucs2)。也是windows核心上的編碼。
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
謝謝您的回覆,
我也是看到plurk是UTF8加上取得的編碼上有\uxxx所以我直接認為這個u是utf8的u 完全沒想到他會是unicode 我在查資料的時候有看到一般utf-8好像是2~3byte(中文),所以我當時有覺得跟我取得的資料有點不太符合,畢竟如果可變長度,我怎麼知道他是試用幾byte 第一次碰到UTF8 OR UNICODE就被搞得一個頭兩個大 總之感謝了,等等再研究看看 ===================引 用 aftcast 文 章=================== plurk 應該是utf8沒錯。但是否indy get 後傳回的是否已經不是utf8? 2010上的indy我沒使用過。但看來你需要自己去debug,或者把indy上的help看仔細一點,看是否某些方法已經自動的會把utf8轉成unicode? 不過照你開始說明你的,你說你看到的 \u???? 那個字的確就是unicode沒錯。而utf8這總編碼是不固定長度的,1byte至3、4bytes(最多幾bytes我忘了),但中文一般是3bytes較多。而unicode是固定在2bytes(精準一點講是ucs2)。也是windows核心上的編碼。 |
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
http://www.fileformat.info/info/unicode/char/611b/index.htm
找到這個網站,讓我確定怎麼更改我的程式 果然是unicode,最後我一個一個分析,找出\u的位置,每個字都轉成big-5 終於搞定了 感謝 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |