フォームから値(日本語)を取ってJSPで表示すると、文字化けしてしまいますが、値 = new String(値.getBytes("8859_1"),"Shift_JIS" )の処理を入れることにより解決しました。
しかし、クッキーの値はこの処理を入れても文字化けしてしまいます。私の持っている2つの本には英語での値をとる処理しか載っていません。
下記のサイトを参考にTomcatのserver.xmlの修正と、web.xmlの作成。http://www.nihon-eng.co.jp/c-break/TechNote/tomc …
Tomcat5.5にはフィルタがないため、Tomcat4を落としてフィルタを\WEB-INF\classes下にコピーすると上記の処理を入れなくてもフォームが化けなくなったのですが、クッキーは文字化けです。
どう対処すればよいのでしょうか?どなたかわかる方よろしくお願いします。
環境 Windows2000 Appache連動なし 自分のPCのクッキーをみたら日本語のところが??????となってました。
No.1ベストアンサー
- 回答日時:
クッキーに日本語を保存する場合、要するに通常のASCII文字だけのデータに変換しておけばいいわけです。
いろいろやり方はあると思いますが、例えば私が通常使うやり方はURLエンコードして保存したのを読み込む際にデコードする方法です。エンコード・デコードはjava.netパッケージのURLEncode/URLDecodeを使えば簡単にできます。エンコード
String 変数 = URLEncoder.encode(テキスト,"UTF-8");
デコード
String 変数 = URLDecoder.decode(テキスト,"UTF-8");
保存する際は、URLEncoder.encodeでエンコードしたテキストをクッキーに保存し、読み込む際はクッキーから取り出したテキストをURLDecoder.decodeでデコードします。他にもエンコードの方法はあると思いますが、これが一番手っ取り早いのでは。
P.S.
フォームのテキストが文字化けするのはrequestをsetCharacterEncodingしてないからか、あるいはJSPの<%@ page contentType>の指定が変なのでは。後々面倒なので、正しいエンコードで受け渡せるようにチェックしておいた方がいいですよ。
回答ありがとうございました!どうやらURLエンコードを使うのが一般的なようですね。「クッキー JSP」を「cookie JSP」で検索したら参考になりそうなサイトも色々でてきました。クッキーは英語で書く方がポピュラーなようですね?フォーム値の文字化けは自力で解決しましたが、JSPにおける文字化けの経緯の説明として書かせていただいただけですので問題ありませんでした。
No.2
- 回答日時:
URLEncoderの使用例は以下のサイトに載っているので、ご参考までに。
JSPプログラムでクッキーを扱う
http://www.atmarkit.co.jp/fjava/rensai/jsp08/jsp …
参考URL:http://www.atmarkit.co.jp/fjava/rensai/jsp08/jsp …
回答ありがとうございます!私のやりたいことがサンプルプログラムとして載っていて、非常に参考になりますた。ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 大学受験 国立受験 11月からの大逆転劇を起こすには 7 2022/11/14 19:24
- その他(プログラミング・Web制作) ゲームを日本語化しようとすると文字化けしてしまいます。 2 2022/08/19 15:36
- その他(メールソフト・メールサービス) メールソフトを教えてください 1 2023/03/28 23:32
- HTML・CSS CSSファイルの日本語コメントが文字化けしてしまう 3 2022/12/26 15:50
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- HTML・CSS リンクバナーのHTMLタグ。画像を変えたり、設置位置を変えるとバナー貼付け側はどう見える? 2 2023/02/01 12:01
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- Android(アンドロイド) 海外のAndroid 端末の場合、日本語全角は、どう表示されるのでしょうか? 1 2022/10/02 21:16
- Visual Basic(VBA) Activesheet.Pasteで困っています 1 2023/01/22 07:41
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の文字列を複数抜き出した...
-
ダブルクォーテーションを含む...
-
結合した文字列をファイル名に...
-
hiddenの値を消したくない!
-
javaのCSVデータ読込についてです
-
ArrayListの要素数の上限
-
excel vba 時間計算と条件分岐...
-
このプログラミング誰か教えて...
-
バイナリファイルの計算方法
-
実行シェルからCOBOLへパラメー...
-
jsで、switch文で書かれた分をi...
-
C# LinqでDateTime型の値を取得
-
JSPでHashMap・配列の変数の値...
-
CString 数値チェック
-
jQueryローディングアニメーシ...
-
Javaの問題なのですが、「3文字...
-
8桁整数を限りなく短い文字列に...
-
DOSバッチで変数の値を変数名に...
-
BCD形式で時刻を!
-
PSQLExceptionが発生する
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルクォーテーションを含む...
-
javaのCSVデータ読込についてです
-
ArrayListの要素数の上限
-
特定の文字列を複数抜き出した...
-
C# LinqでDateTime型の値を取得
-
wsprintf関数の使い方について
-
jQueryローディングアニメーシ...
-
DateTimePickerに値を入れたい...
-
BCD形式で時刻を!
-
結合した文字列をファイル名に...
-
PSQLExceptionが発生する
-
excel vba 時間計算と条件分岐...
-
C言語の変数(LSB)の合わせ込...
-
Evaluate()に文字列の形式の数...
-
char型での演算子
-
Javaの問題なのですが、「3文字...
-
実行シェルからCOBOLへパラメー...
-
Stringクラスの変数の格納アド...
-
日付や時刻の"01"を" 1"に変換...
-
DOSバッチで変数の値を変数名に...
おすすめ情報