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

Java talk to delphi indy 9.00.17 中文顯示問題

尚未結案
hedge
一般會員


發表:4
回覆:10
積分:2
註冊:2004-09-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-01 09:26:21 IP:202.39.xxx.xxx 未訂閱
Dear All.... 我用 Java talk to Java 中文沒有問題 但是 Java talk to delphi Indy 9.00 TIdTCPClient 中文字卻不能顯示 以下是片段 誰能給個點子呢 謝謝~~ Java Server : ServerSocket listen_socket = new ServerSocket(port); Socket client = listen_socket.accept(); InputStream in = client.getInputStream(); OutputStream out = client.getOutputStream(); service.serve(in,out,client.getInetAddress().getHostAddress()); public void serve(InputStream i,OutputStream o,String StrIpaddr) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(i)) ; DataOutputStream out = new DataOutputStream(o); StringBuffer s1 = new StringBuffer(); s1.append(" 中文字 " ); StrData=new String(s1.toString().getBytes("Big5"), "8859_1"); out.writeBytes( StrData "\n"); System.out.println(StrData); } Delphi Client : Client: TIdTCPClient; procedure TForm1.Timer1Timer(Sender: TObject); var Msg,strtmp : string ; begin if not form1.Client.Connected then exit ; Client.WriteLn (label2.Caption); try Msg := form1.Client.ReadLn('', 5 ); if( length(Msg) > 0) then begin caption := Msg ; end ; except end; end;
Lordaeron
初階會員


發表:24
回覆:93
積分:33
註冊:2004-05-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-09 14:14:38 IP:220.135.xxx.xxx 未訂閱
s1.append(" 中文字 " ); StrData=new String(s1.toString().getBytes("Big5"), "8859_1"); ^^^^^^^^ iso8859-1? out.writeBytes( StrData "\n"); 你的server 程式的locale 有沒有問題, 你new 的string 確定是ISO8859-1? 如果你是在tomcat 下, 哪一般是iso8859-1, 但一般的AP 就不見得囉. 如果你確定的話, 哪就試一下 將你要輸出的字串轉成big5 後, 再轉存到一個byte array 中, 再write 出去
hedge
一般會員


發表:4
回覆:10
積分:2
註冊:2004-09-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-02-14 09:19:04 IP:202.39.xxx.xxx 未訂閱
Dear Terry....    謝謝您的指教 因為過年期間都沒有上來 所以這麼晚才看到 非常感謝您熱心回應    我這段 語法 用來跟 Java Applet 溝通是可以的 這是跑在 Linux 上的 Java Application ... 跟 Java Applet 溝通中文字並無問題  但是您說的方法  我會試試看 !!!!    Java 老實說 我並不熟 但是 我研究改改看 再跟您說結果囉 謝謝您 again ~~~~  ^^        
引言: s1.append(" 中文字 " ); StrData=new String(s1.toString().getBytes("Big5"), "8859_1"); ^^^^^^^^ iso8859-1? out.writeBytes( StrData "\n"); 你的server 程式的locale 有沒有問題, 你new 的string 確定是ISO8859-1? 如果你是在tomcat 下, 哪一般是iso8859-1, 但一般的AP 就不見得囉. 如果你確定的話, 哪就試一下 將你要輸出的字串轉成big5 後, 再轉存到一個byte array 中, 再write 出去
發表人 - hedge 於 2005/02/14 09:21:29
hedge
一般會員


發表:4
回覆:10
積分:2
註冊:2004-09-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-02-14 15:38:51 IP:202.39.xxx.xxx 未訂閱
http://www.oreilly.com.tw/sleepless/java_big5_1.htm    加上 -encoding MS950 就可以了 真不好意思 也非常感謝 但是 加上之後  必須把  StrData=new String(s1.toString().getBytes("Big5"), "8859_1"); 改成  StrData=new String(s1.toString());    Thanks a lot !!!!!    
引言: s1.append(" 中文字 " ); StrData=new String(s1.toString().getBytes("Big5"), "8859_1"); ^^^^^^^^ iso8859-1? out.writeBytes( StrData "\n"); 你的server 程式的locale 有沒有問題, 你new 的string 確定是ISO8859-1? 如果你是在tomcat 下, 哪一般是iso8859-1, 但一般的AP 就不見得囉. 如果你確定的話, 哪就試一下 將你要輸出的字串轉成big5 後, 再轉存到一個byte array 中, 再write 出去
Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-04-26 13:51:06 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

------
我是機器人,我不接受簡訊.
系統時間:2024-09-06 8:35:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!