URLDecoderで文字化けする時の対処法
先日javascriptで文字列をencodeURIし、それをjavaでURLパラメータとして受け取りURLDecoderでデコードする
という処理を書いていたときにいくらやってもデコードした文字列が文字化けしてちゃんと表示されませんでした
javascript側は文字列がどんな文字コードでもutf-8でエンコードするらしいのでいったい何が問題なのかわかりませんでした
以下そのときのソース
URLDecoder.decode(string, "utf-8");
で、いろいろググってたらこのサイトを見つけて無事ちゃんとデコードできました!!1
結論から書くと
new String(URLDecoder.decode(string, "iso-8859-1").getBytes("iso-8859-1"),"utf-8");
でちゃんとした文字列を取得できました
なぜか一旦iso-8859-1でバイト配列にしてからStringで指定文字コードで復号させています
意味がわからないけどこれでできました
詳しい人いたら教えてください><