文字化けします。
お世話になります。
ソケットでサーバとクライアントを接続しています。
コーディングの概略は次の通りです。
【クライアント】
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(),"EUC_JP"));
out.println("かきくけこ");
System.out.println(in.readLine());
【サーバ】
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(),"Shift_JIS"));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
out.println(inputLine); //←これはクライアントでも文字化けしない。
String s1 = "あいうえお";
String u1 = new String(s1.getBytes("xxxxx"), "yyyyy");
out.println(u1); //←文字化けする。
}
お伺いしたいのは文字コード変換についてです。
サーバ:RedhatLinux クライアント:Windowsでして、
サーバ側コーディングの
String s1 = "あいうえお";
としている文字列を
クライアント側の
// 読み込んだデータを表示
System.out.println(in.readLine());
で表示したいのですが、文字が化けて(????←このようになります)困っています。
文字コード変換しなければいけないと思うのですが、
getBytesを使うのでしょうか?
もしgetBytesを使うならどのように書けばいいのかがわかりません。
分かりにくい説明で申し訳ありませんが、
ご教授ください。宜しくお願いします。
お礼
ご回答誠にありがとうございます。今から実装してみます。本当にありがとうございました。