■
- 文字コードについて
Javaのコード内部での文字コードは通常Unicode(UTF)になっているが、
Servlet経由で文字を取得するとクライアントブラウザの文字コードが
セットされている。したがって、以下のようにUnicode形式に変換した
方が良いかも。。(まだ良くわかってない)
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { String sendMessage = req.getParameter("message"); sendMessage = new String(sendMessage.getBytes("iso-8859-1"), "Shift_JIS"); }
またsocketの入出力に良く使うInputStreamReader, OutputStreamWriterは
Javaの内部コードであるUnicodeをどのコードに変換するかという使い方で
あり、任意のコードを任意のコードに変換する事は出来ない。
bw = new BufferedWriter( new OutputStreamWriter(client.getOutputStream(), "SJIS")); UnicodeをSJISに変換して出力 br = new BufferedReader( new InputStreamReader(socket.getInputStream(), "SJIS")); SJISをUnicodeに変換して入力