- - PR -
【struts】ActionFormの文字化け
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-09-11 10:46
strutsを使ったアプリケーションで、文字化けに悩まされています。
DB⇒JSPの表示は問題なく行えるのですが、JSP⇒ActionFormのところで化けてしまいます ■環境 DB:Oracle 10.2.2(JA16SJISTILDE) JAVA:1.5.08 Struts:1.29 化ける文字:焉A丸数字等 jspのpageディレクティブは以下のように設定し <%@ page pageEncoding="Windows-31J" contentType="text/html; charset=Windows-31J"%> SetCharacterEncodingFilterでエンコーディングを"Windows-31J"に設定しています デバッグしてみると、ActionFormのsetメソッドの時点で既に文字化けしているようです。 DBからのデータ取得・表示は問題ないので、strutsの問題化と思うのですが、解決策がわかりません。 対処方があれば教えていただけないでしょうか 質問ばかりで申し訳ないのですが、よろしくお願いいたします | ||||
|
投稿日時: 2006-09-11 16:30
Webサーバーは、なにを使ってますか?
Tomcatは、最近のバージョンになってから、URIに対しては、 setCharacterEncodingの設定を、適用しなくなったとのことです。 以下のスレッドが参考になるかと。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=32037&forum=12 <追記> ちなみに、参考になるのは、しっぽの方だけであります。 [ メッセージ編集済み 編集者: Edosson 編集日時 2006-09-11 17:09 ] 私は、どっちかというと役立たずですが。orz [ メッセージ編集済み 編集者: Edosson 編集日時 2006-09-11 17:25 ] | ||||
|
投稿日時: 2006-09-12 17:17
>Edossonさん
教えていただいた方法を試したのですが、、ダメでしたorz 他にも色々と試してみたんですが、どうもダメでした・・ 入力欄に「@」を入れてActionFormの値を取り出すと、「@」に化けてしまいます。。 strutsで外字を扱うのは無理なんでしょうか・・ 途方にくれております | ||||
|
投稿日時: 2006-09-12 18:27
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=33003&forum=12&start=8&12
| ||||
|
投稿日時: 2006-09-12 19:01
>jimaさん
提示して頂いた方法も試したのですが、やはりダメでした・・ DBからデータを取得して表示 DB⇒(ODBC)⇒アプリ⇒JSP はOK 画面から入力した値をサーバで取得 JSP⇒(ActionForm)⇒アプリ の場合はNGです ActionFormから値を取り出した時点で化けています servletのソースを追ってみたりしたのですが、 どこで化けているのかはっきりわかりません。 | ||||
|
投稿日時: 2006-09-13 10:27
丸数字って、外字なんですかね。
それはともかく、ActionForm内で、昔懐かしい、
ってやってみても、paramは化けたままですか? | ||||
|
投稿日時: 2006-09-13 11:10
charset=Windows-31JってブラウザがIEの場合、認識しないのでは。 charsetの指定がない場合と同様の動き(=文字コードの自動識別)をして Shift_JISと処理されているんじゃないかなぁ。 化けるのが機種依存文字の類だけなんでしたっけ。 お使いのブラウザの種類およびバージョンはなんでしょうか? また、OSはなんでしょうか? HTTPのパケット拾ってみて該当の文字がWindows-31Jでのバイト列で 送られていることが確認できれば、ブラウザ側の解釈の問題と 確定できるのですけれども。 | ||||
|
投稿日時: 2006-09-13 13:23
昔懐かしいやり方の場合、useBodyEncodingForURIは、falseにしておく必要がありますね。
以上、補足であります。 |