- PR -

EZ端末からの投稿が文字化け

1
投稿者投稿内容
ほげ
会議室デビュー日: 2004/05/20
投稿数: 3
投稿日時: 2004-05-20 19:45
Apache1.3 + mod_jk + Tomcat4.1.24
でサーブレット構築しています。

受け付けたリクエストパラメータを
HttpServletRequest
から取り出して文字コード変換して使用しているのですが、
EZ端末(A5403CA他)から METHOD=POST で送信した場合のみ、
デコードした時、文字化けがおきます。

new String(request.getParameter("...").getBytes("8859_1"),"Shift_JIS")


いろいろ調べたところ、
サブミット時に、
x-up-destcharset=17
というパラメータが付加されている場合に
文字化けがおきていました。


リクエストパラメータの内部コードを調べたところ、
すでにパラメータ値がコード変換されているようで、
結局のところ、
request.getParameter("...")
だけで欲しい文字コードが得られるのですが、
なぜ勝手にかわってしまうのか悩んでいます。
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2004-05-20 20:36
wap serverが変換してるんじゃないですかね。
ほげ
会議室デビュー日: 2004/05/20
投稿数: 3
投稿日時: 2004-05-20 20:51
初め、WAPサーバがかけていると
思っていたのですが、
まったく同じフォームで
action先だけをCGI Perlなどに飛ばし、
リクエストパラメータの内容をダンプしてみたら、
変な変換はかかっていませんでした。

また、WAPサーバにそのようなエンコーディングをしているという
技術仕様をネットで検索してみたのですが、見つけられずじまい。。。。。

このような現象が起きた方っていらっしゃらないのでしょうか?
小人
会議室デビュー日: 2004/05/17
投稿数: 3
投稿日時: 2004-05-21 12:57
ezWebの場合はこのような現象が起きます。身近でも苦労した人が居ます。
申し訳ないのですが私自身がPGじゃなかったので具体的なことが今分からないのですが、下記のURLを紹介してあげたら参考に直していました。

とにかくAutoDetectじゃ判別できなくて,UTF-8が関係してたような・・。
友人が出社したら聞いてみます。それまでは下記URLを参考に調べてみてください。

http://www.t3.rim.or.jp/~yoko-k-h/java/servlet/programming/mojibake.html
http://www.alles.or.jp/~torutk/oojava/sabbath/charcode.html
http://yamaguch.sytes.net/~tora/java/encode.html
http://www.alles.or.jp/~torutk/oojava/sabbath/charcode.html
ほげ
会議室デビュー日: 2004/05/20
投稿数: 3
投稿日時: 2004-06-02 13:59
いろいろと調べたところ、
EZWebで文字化けが発生してしまうケースの
リクエストヘッダーは、

content-type = application/x-www-form-urlencoded;charset=shift_jis

となっていました。
文字化けしないケースでは、

content-type = application/x-www-form-urlencoded

だけだったのですが、
これにより、Tomcatが、勝手に変換しちゃってくれているのでしょうか?

ちなみに、
x-up-destcharset=17
は、リクエストヘッダーにはありませんでした。
WAPサーバが、x-up-destcharset=17
を見て、
content-type = application/x-www-form-urlencoded;charset=shift_jis
に変換しているのかもしれませんね。
1

スキルアップ/キャリアアップ(JOB@IT)