- - PR -
java(JSP)の中に、UNIXの日本語の漢字のコード転換の件
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2003-07-17 19:51
下記の件、教えてください。急ぎなので、どうもありがとう
クライアント:Windows IE APサーバー:WebSphere 5.0 On Solaris 8.0 DBサーバー:Oracle 8i On Windows 2000 SP3 JSPの中に、このようで設定「contentType="text/html; charset=Shift_JIS」 DBの全角字をJSPに表示する場合、正常に表示できますが、 画面で入力された全角字をDBに更新するとき、「?」になってしまう。 再度画面に表示すれば、画面に「?」で表示した。 この問題はUNIXとWINDOWSのコードが違うと思いますから、JAVAのSERVLETでコード 転換を行ってみました、 return new String(s.getBytes("8859_1"),"EUC_JP"); return new String(s.getBytes("8859_1"),"iso-2202-jp"); return new String(s.getBytes(""),"SJIS"); 以上の方法でか解決してみましたが、だめです。 誰か解決の方法を知ったら、お知らせてください。どうも。 |
|
投稿日時: 2003-07-17 20:25
WebSphere 5.0がServlet2.3に対応しているなら、
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("Shift-JIS"); をやってみてはいかがでしょう。??表示は、文字コードがUTF-8のままだと発生するようですよ。 |
|
投稿日時: 2003-07-17 20:39
この問題で使うformは
<FORM NAME=myForm enctype="multipart/form-data" METHOD=POST ACTION="">です。 特別な対応方法が必要ですか。 |
|
投稿日時: 2003-07-17 20:46
ダメもとですが(というより確認されていると思いますが)
return new String(s.getBytes("8859_1"),"Shift_JIS"); ではどうでしょうか? #つけたし もしくは return new String(s.getBytes("8859_1"),"MS932"); [ メッセージ編集済み 編集者: Ken-Lab 編集日時 2003-07-17 20:53 ] |
|
投稿日時: 2003-07-18 07:15
return new String(s.getBytes("8859_1"),"MS932");
で行うのがよいと思います。Shift_JISだと鰍ネどが化けました。 環境:Windows2000,Oracle,JDBC Thin 「〜」文字化けについて という題名で別スレッドに登録していますので 参照ください。 |
|
投稿日時: 2003-07-18 10:01
APサーバーはWindows 2000でテストしたと、
return new String(s.getBytes("8859_1"),"Shift_JIS"); return new String(s.getBytes("8859_1"),"MS932"); 上記の二つがいいです。しかし、UNIXでテストした時、問題があります。 |
|
投稿日時: 2003-07-18 10:45
フォームで「multipart/form-data」を指定しているのなら、
ServletInputStreamでバイトデータを直接取得しているのですよね? 転送データはShift_JISで送っているようなので、String型に変換する際に 文字エンコーディングに「MS932」を指定すればよいのではないでしょうか |
|
投稿日時: 2003-07-22 09:39
MINEさんの方法でテストしたと、問題を解消しません。
「MS932」でエンコーディングできません。 「multipart/form-data」を指定していますが、転送データは「Shift_JIS」で送りますか。 |
