基礎問題(關於中文字碼問題) |
尚未結案
|
b1972305
一般會員 發表:2 回覆:1 積分:0 註冊:2003-10-26 發送簡訊給我 |
問題一.當我使用length(s)取得字串的長度時如果字串是英文(ex.s:='abc')所 得到的長度會是3那如果字串是中文的話(ex.s:='中文字')那所得到的長 度則是6 這是因為中文字碼筆英文字碼多站一個位元的關係嗎 問題二.當把字串當成陣列時(ex.s[1]這個位址再字串是英文的時候會得到正確的結果,如果是中文字碼的話s[1]會是空白的或是亂碼必須要輸入S[2]這個位址才會是中文字碼)如問題二所述應該怎嗎使用才正確呢 其實我的問題是當要取得一個中文字碼的長度時應該要如何使用呢
當我要表示要取得一個中文字串中的某一個字時又該如何表示呢 謝謝(問題問的不好還請多多包含---剛剛貼錯位置抱歉)
|
speedup
資深會員 發表:19 回覆:259 積分:280 註冊:2003-07-04 發送簡訊給我 |
1.使用Unicode在Delphi中的型態分別為
WideString 字串
WideChar字元
var s1,s2:WideString; c1,c2:WideChar; i:integer; begin s1 := 'English'; s2 := '中文字串'; for i := 1 to Length(s1) do begin c1:=s1[i]; Showmessage(c1); end; for i := 1 to Length(s2) do begin c2:=s2[i]; Showmessage(c2); end; end;2.利用DBCS API 判斷 若仍執意要處理DBCS字串(即string格式英文1char 中文2char) 可用IsDBCSLeadByte() 判斷該字元是否為中文前導字元 混心雜欲 棄修身~唉
------
唉~ |
b1972305
一般會員 發表:2 回覆:1 積分:0 註冊:2003-10-26 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |