Java talk to delphi indy 9.00.17 中文顯示問題 |
尚未結案
|
hedge
一般會員 發表:4 回覆:10 積分:2 註冊:2004-09-02 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |