-PR-
締切済み

マシンによってURLEncoder.encodeの結果が違う

  • 暇なときにでも
  • 質問No.13464
  • 閲覧数251
  • ありがとう数14
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 10% (1/10)

西巻と申します。よろしくお願いします。

JavaServletの開発を行っているのですがソースを
コンパイルし、Aのマシンで実行したときと、Bのマシン
で実行したときで結果が異なります。

具体的にはAのマシンでの
URLEncoder.encode("ほげ")の結果が
%82%D9%82%B0
となるのに対してBのマシンでは
%3F%8F%AA%E3%3F%A1%EB
となります。
原因についておわかりの方ご教授ください。

各マシンは
A:Solaris7
B:Solaris2.6
でJDK1.2.2
JServ1.1.1
です
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全1件)

  • 回答No.1
レベル9

ベストアンサー率 30% (25/81)

多分Bがバグってます。<br><br> 私はSolaris使いではないのですが、(同じマシンのWindows上で)同じアプレットがIEとネスケでご質問の症状を起こしたことがあります(要は一方がバグってた)。どっちがどっちだったかは忘れてしまいましたが。。。<br><br> Aが出力した「%82%D9%82%B0」は「ほげ」のShift-JIS表現 ...続きを読む
多分Bがバグってます。<br><br>

私はSolaris使いではないのですが、(同じマシンのWindows上で)同じアプレットがIEとネスケでご質問の症状を起こしたことがあります(要は一方がバグってた)。どっちがどっちだったかは忘れてしまいましたが。。。<br><br>

Aが出力した「%82%D9%82%B0」は「ほげ」のShift-JIS表現になっています。Javaソース中の「ほげ」はUnicodeで格納されているのでプログラム内(多分URLEncoder.encode)でShift-JISに変換しているのは理解できるでしょうか。
<br><br>
問題のBですが、先の変換を二重にやってしまっているのではないでしょうか?つまりShift-JISである「%82%D9%82%B0」をUnicodeだと思ってShift-JISに変換を試みた結果、あのような出力になっているのだと思います。状況証拠として「%3F」が2回出現しています。
関連するQ&A


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ