- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:半角文字と全角文字のencodeのちがい)
半角文字と全角文字のencodeのちがい
このQ&Aのポイント
- JSP-Servletにて、半角文字と全角文字のエンコードの違いについて質問です。
- 質問者は、JSPでURLEncoder.encodeを使用して半角の「ア」と全角の「あ」をエンコードし、Servletに送信しようとしています。
- しかし、半角の「ア」は正しくエンコード、デコードされているのに対し、全角の「あ」は正しくデコードされないとのことです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
JDK1.4をお使いでしたら、文字エンコーディングを指定してencode/decodeを行ってみるとどうでしょうか。 http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/net/URLEncoder.html 1.3以前はここで文字エンコーディングが指定できなかった(常にプラットフォームのデフォルトが使われていた)ので、例えば Windows <-> LinuxでURLエンコードした文字列のやりとりを行おうとすると文字化けがおきました。 ただ、takataka111さんの場合、JSPとServletが同じLinux上で動いているのであれば、デフォルトエンコーディングも同じで問題なさそうな気もしますが…。 JSPって実は、ContentTypeに応じてデフォルトエンコーディングを書き換えているのかも。(注: よく分かってないので推測です) 1.4が試せなければ、エンコード側とデコード側で文字エンコーディングが一致しているかどうか確かめることをお勧めします。 同じ日本語文字列をString#getBytesして比較してみるとか。
お礼
ありがとうございました、なかなか回答が無かったもので あきらめかけておりました、とりあえずjavaScript機能の escape()とunescape()を使用してエンコードしてみましたところうまくいきました、ありがとうございます。