線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1298
推到 Plurk!
推到 Facebook!

再问UNICDOE

尚未結案
mustapha.wang
資深會員


發表:89
回覆:409
積分:274
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-16 10:50:44 IP:218.1.xxx.xxx 未訂閱
当我这样写时,在简繁体操作系统下都能正常显示:
procedure TForm2.Button5Click(Sender: TObject);
var
  WS:WideString;
  R:TRect;
begin
  WS:='如何使用帮助';  //GBK码
  R:=Rect(200,200,400,250);
  DrawTextW(Canvas.Handle,PWideChar(WS),Length(WS),R,0);
但如果写成这样:
procedure TForm2.Button5Click(Sender: TObject);
var
  WS:WideString;
  R:TRect;
  S:String;
begin
  S:='如何使用帮助';
  WS:=S;
  R:=Rect(200,200,400,250);
  DrawTextW(Canvas.Handle,PWideChar(WS),Length(WS),R,0);
就在繁体操作系统显示乱码了。 不知道为何? 久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
------
江上何人初见月,江月何年初照人
orson
中階會員


發表:5
回覆:135
積分:58
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-16 17:50:53 IP:211.74.xxx.xxx 未訂閱
引言: 憪滿A在橧c体操作系i下都能正常F示:
procedure TForm2.Button5Click(Sender: TObject);
var
  WS:WideString;
  R:TRect;
begin
  WS:='如何使用盓U';  //GBK鱭r
  R:=Rect(200,200,400,250);
  DrawTextW(Canvas.Handle,PWideChar(WS),Length(WS),R,0);
但如果嬰煄G
procedure TForm2.Button5Click(Sender: TObject);
var
  WS:WideString;
  R:TRect;
  S:String;
begin
  S:='如何使用盓U';
  WS:=S;
  R:=Rect(200,200,400,250);
  DrawTextW(Canvas.Handle,PWideChar(WS),Length(WS),R,0);
就在繁体操作系iF示糷F。 不知道o何? 久病成良K--多I 千人之gg,不如一士之--兼听
因為 s 是string string = ansistring 也就是說 在第二個部分裡的 s是GBK碼,這樣就無法對照了。 而第一部份的WS 用的是unicode,所以可以用。 Orson
mustapha.wang
資深會員


發表:89
回覆:409
積分:274
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-16 20:03:44 IP:218.1.xxx.xxx 未訂閱
可是第二部分,也写了WS:=S;哦,也是WideString,如果Delphi会自动转Unicode,为何第一种写法转了,第二写法不转呢?     久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
------
江上何人初见月,江月何年初照人
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-12-16 20:22:52 IP:218.160.xxx.xxx 未訂閱
Hi mustapha.wang您好: Big5碼沒有'帮'這個字, 'GBK'有所以簡體正常沒有錯 在繁體系統會將'帮'這個字當成Unicode, 放到String裡(S:='如何使用帮助';)字就已經Lose掉了. 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
Leway
一般會員


發表:43
回覆:71
積分:22
註冊:2003-07-29

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-12-16 20:35:03 IP:218.80.xxx.xxx 未訂閱
Hello mustapha; 幫忙看看我外面的問題,謝謝!
AB
高階會員


發表:166
回覆:262
積分:125
註冊:2003-08-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-12-17 00:31:15 IP:61.64.xxx.xxx 未訂閱
去下載試看看 http://cpatch.org/witchfive/1/unicodeaton_230.exe
mustapha.wang
資深會員


發表:89
回覆:409
積分:274
註冊:2002-03-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-12-17 08:57:33 IP:218.1.xxx.xxx 未訂閱
引言: Hi mustapha.wang您好: Big5碼沒有'帮'這個字, 'GBK'有所以簡體正常沒有錯 在繁體系統會將'帮'這個字當成Unicode, 放到String裡(S:='如何使用帮助';)字就已經Lose掉了. 我不是高手, 高手是正在銀幕前微笑的人.
可能是这样的。不能把UNICODE给string,一旦给了就变成Local了,可能就不能还原了 久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
------
江上何人初见月,江月何年初照人
AB
高階會員


發表:166
回覆:262
積分:125
註冊:2003-08-21

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-12-17 12:55:24 IP:61.221.xxx.xxx 未訂閱
我使用那po的程式之後 跟本就不需再多管 UNICODE 轉來轉去的爛問題 是mx故意的 還是繁體與的字型研究單位問題 (老是領錢不做正事) 沒有貢獻 這種字型的問題 台灣還真是落後 不知使用delphi的朋友 能在 程式碼 上完整的寫下 方方土 (J)這個字嗎 要等d8那你不如 使用我說的程式 包君滿意 是否有支援gb我是不太清楚 不過那已包含約4000個UNICODE字 短時間應該還 可應付 發表人 - ab 於 2003/12/17 18:47:21
orson
中階會員


發表:5
回覆:135
積分:58
註冊:2002-07-11

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-12-17 13:10:40 IP:211.74.xxx.xxx 未訂閱
引言: 可是第二部分,也壑FWS:=S;哦,也是WideString,如果Delphi悁HUnicode,o何第一种尷kH了,第二尷k不H呢? 久病成良K--多I 千人之gg,不如一士之--兼听
因為你已經先把字串assign給string所以ansistring對上系統的時候,就轉換成GB碼了。 而第二次的assign因為你運行的系統已經是在繁體下面了,也就是說操作系統直接用big5碼來解釋你的字串再轉換成對照的unicode。 這樣的轉換流程,你猜會對嗎? Orson
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-12-17 15:50:50 IP:218.160.xxx.xxx 未訂閱
To AB : Delphi8已經修正了Unicode的問題了, 但是若要整各系統改用Delphi8來跑還有些小問題要注意, 那就是以後一個中文字也算一個長度, 所以有用到Length, Copy, 或其他計算到字元長度的函式都要小心一下.       這不曉得該怪M$還是Borland技術好?? 發表人 -
------


我不是高手, 高手是正在銀幕前微笑的人.
AB
高階會員


發表:166
回覆:262
積分:125
註冊:2003-08-21

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-12-17 18:45:55 IP:61.221.xxx.xxx 未訂閱
引言:Delphi8已經修正了Unicode的問題了
依附在net下的d8 可以使用Unicode 但是Unicode本身不完整的問題 還是一樣啦 克難使用 所以我才說 是mx故意的 還是繁體與的字型研究單位問題 (老是領錢不做正事) 沒有貢獻 http://www.unicode.org/ 有可能幫台灣把unicode字都加入嗎 台灣自己不努力 還能說啥 對岸的字型整合的速度 都比台灣快 台灣還在用那數十年未修改的東西 就算台灣繁體字有5萬個字 10年真的都攪不出嗎? 光去下載也要登記 我很懷疑 台灣字型研究單位的心態 是保障廠商還是封閉政策 那不是 正事都沒做嗎 只等有熱心之人自己攪出 真是 上樑不正下樑歪 發表人 - ab 於 2003/12/17 18:51:46
mustapha.wang
資深會員


發表:89
回覆:409
積分:274
註冊:2002-03-13

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-12-18 08:55:33 IP:218.1.xxx.xxx 未訂閱
引言: 依附在net下的d8 可以使用Unicode 但是Unicode本身不完整的問題 還是一樣啦 克難使用 所以我才說 是mx故意的 還是繁體與的字型研究單位問題 (老是領錢不做正事) 沒有貢獻 http://www.unicode.org/ 有可能幫台灣把unicode字都加入嗎 台灣自己不努力 還能說啥 對岸的字型整合的速度 都比台灣快 台灣還在用那數十年未修改的東西 就算台灣繁體字有5萬個字 10年真的都攪不出嗎? 光去下載也要登記 我很懷疑 台灣字型研究單位的心態 是保障廠商還是封閉政策 那不是 正事都沒做嗎 只等有熱心之人自己攪出 真是 上樑不正下樑歪 發表人 - ab 於 2003/12/17 18:51:46
我觉得跟“字型研究單位”好像没关系,UNICDOE里应该简繁体的字都是全的,像上面的例子,我用DrawTextW在简繁体操作系统都能正常显示的。应该只是Delphi的问题,它的元件都用string,不用WideString 顺便问问,你的mx指啥? 久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
------
江上何人初见月,江月何年初照人
AB
高階會員


發表:166
回覆:262
積分:125
註冊:2003-08-21

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-12-18 09:45:54 IP:61.221.xxx.xxx 未訂閱
字型研究單位 這和你的問題本身 沒有關係 只是我發牢騷 mx 是我後來改的 也和你問題沒關係 ================================================================= 你認為是 delphi 那就好了 別管我的 抱歉是我沒看清楚問題 po錯把 http://cpatch.org/unicode/tool/index.html 發表人 - ab 於 2003/12/18 10:06:24
mustapha.wang
資深會員


發表:89
回覆:409
積分:274
註冊:2002-03-13

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-12-18 11:36:47 IP:218.1.xxx.xxx 未訂閱
引言: 字型研究單位 這和你的問題本身 沒有關係 只是我發牢騷 mx 是我後來改的 也和你問題沒關係
那也感谢你的参与 久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
------
江上何人初见月,江月何年初照人
系統時間:2024-06-02 13:15:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!