請問怎樣可以把 string to UTF-8 |
尚未結案
|
SamSam1230
中階會員 發表:128 回覆:178 積分:65 註冊:2004-12-23 發送簡訊給我 |
因為案子須要到UTF-8 跟 unicode
所以就在KTop爬了很多關於unicode的文章
但已經爬很多, 越看越亂 請問有大大用過 http://www.yunqa.de/delphi/converters/index.htm 的 DIconvetors 嗎? 下面的是我試用他的api 做的
procedure convert(); var temp : ucs4_t; conv : conv_struct; returncode : integer; b : array of byte; begin fillchar(conv,sizeof(conv),0); setlength(b,10); b[0] := $A7; // A7 DA => big5 '我' b[1] := &DA; returncode = big5_mbtowc(@conv,temp,b,2); end;這樣出來的unicode 結果是對的 , 但我有很多地方不太明白, 在紅色的那句上,如果我把 2 改成 sizeof(b) = 4 為什麼呢? 不是2 bytes嗎? 但話說回來, 就算我把2改成 sizeof(b), answer 一樣都是對,那又為什麼呢? 我真正想要做的是 以一個 Tedit 給user type 一些string , 可能是中文或者是英文, 然後是要把那個string 變成 UTF-8 . 第一個問題是我要怎樣知道現在user type in 的時候是以什麼code page 呢? 是以system 去找嗎? 但code page 好像是application dependent. 謝謝 可能不是最好的方法 !!! 我也是初學者 !!! 不要怪我呀.. 我最喜歡吃零食啦^.^ |
malanlk
尊榮會員 發表:20 回覆:694 積分:577 註冊:2004-04-19 發送簡訊給我 |
|
T.J.K
中階會員 發表:3 回覆:35 積分:57 註冊:2005-06-28 發送簡訊給我 |
|
SamSam1230
中階會員 發表:128 回覆:178 積分:65 註冊:2004-12-23 發送簡訊給我 |
|
SamSam1230
中階會員 發表:128 回覆:178 積分:65 註冊:2004-12-23 發送簡訊給我 |
procedure TFrmMain.BitBtn2Click(Sender: TObject); var conv: conv_struct; returncode,i : integer; tmpucs : ucs4_t; outputstr1,outputstr2 : array of char; wideChars : array [0..11] of WideChar; wideChars1 : array of WideChar; myString : String; begin FillChar(conv,Sizeof(conv),0); setlength(outputstr1,255); setlength(wideChars1,12); stringtowidechar(edit1.text,@widechars,12); stringtowidechar(edit1.text,@widechars1,12); for i := 0 to length(widechars)-1 do begin returncode := utf8_wctomb(@conv,outputstr1,ord(widechars[i]),3); end; outputstr2 := copy(outputstr1,0,length(outputstr1)-1); end;以上的問題我已經解決了是用了stringtowidechar 和 DIconvertor 的 utf8_wctomb 但有另外一個問題是紅色的部分 假如我edit1.text type in '我們' 為什麼 widechars 顯示的是正確 , 而widechars1 錯呢? 兩個分別是我widechars1 是run time 的時候才setlength , 但是我搞不懂為什麼呢 可能不是最好的方法 !!! 我也是初學者 !!! 不要怪我呀.. 我最喜歡吃零食啦^.^ |
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
wideChars is a static array while wideChars1 is a dynamic array. Try this: stringtowidechar(edit1.text,@widechars1[0],12); http://pywong.hk.st
|
malanlk
尊榮會員 發表:20 回覆:694 積分:577 註冊:2004-04-19 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |