- PR -

windowsで文字化けする。

1
投稿者投稿内容
未記入
会議室デビュー日: 2006/01/13
投稿数: 12
投稿日時: 2007-04-02 01:24
他の掲示板でダメそうなのでここで質問する。

fedoracore6でtomcat5.5を動かしてみる。
アプレット-サーブレット通信でクライアントがサーバと同じfedoracoreのときはいいのですが、
クライアントがウィンドウズxpになるとサーバで受信した文字が化けてしまいます。
なんとか直したいのでお願いします。

アプレット側通信関数
public String send(String s)
{
try
{
sock = new Socket(getParameter("ipAddress"),9999);

fin = sock.getInputStream();
fout = sock.getOutputStream();
ffin = new InputStreamReader(fin);
in = new BufferedReader(ffin);
out = new PrintWriter(fout,true);

out.println("POST / HTTP/1.1");
out.println("Accept: */* ");
out.println("Accept-Language: ja");
out.println("Accept-Encoding: gzip,deflate");
out.println("User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
out.println("Host: "+getParameter("ipAddress"));

out.println("Content-Type: text/html; charset=UTF-8");
out.println("Content-Length: "+(s.getBytes("UTF-8").length));

out.println("Connection: Keep-Alive");
out.println("");

out.println(s);
}
catch(IOException e)
{
}
}

サーバー受信関数
public void service(HttpServletRequest req, HttpServletResponse res)throws ServletException,IOException
{
BufferedReader in;

String str;

try
{
in = new BufferedReader(new InputStreamReader(req.getInputStream(),"UTF-8"));

str = in.readLine();
System.out.println("受信した文字列"+str);
}
}
だっちょ
大ベテラン
会議室デビュー日: 2006/12/05
投稿数: 115
投稿日時: 2007-04-02 09:59
単に近くの画面を表示するときのデータを見ただけで正しく知っているわけでありませんが、
Content-Typeにはtext/htmlだけでHTMLの中で
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
..
としています。XMLだとencoding宣言の中にかくので、encodingはContent-Typeにかかないのでは?
ペンちゃん
ベテラン
会議室デビュー日: 2006/08/04
投稿数: 61
投稿日時: 2007-04-02 15:21
引用:

未記入さんの書き込み (2007-04-02 01:24) より:
他の掲示板でダメそうなのでここで質問する。



他の掲示板で話が進んでいるのでここにアドレスを記載する。
Javaの道−ウィンドウズで文字化け

[追記]
過去の投稿でレスが付いているのに放置されているスレがあるようですが、レスが付いたスレにはちゃんと報告なりお礼を述べた方が良いかと思います。
[/追記]

[ メッセージ編集済み 編集者: ペンちゃん 編集日時 2007-04-02 15:24 ]
1

スキルアップ/キャリアアップ(JOB@IT)