Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

日本語文字化け

BEANにpublicで日本語文字を設定して、
JSPにその日本語文字を表示しようとすると、
文字化けします。

普通の日本語は表示されるのですが、
〜(から)という文字は文字化けします。

DBから読み込んでも文字化けします。

対処法はあるのでしょうか?


また、日本語をrequestして文字比較をJSP内でした場合、
見た目は同じでもイコール(==)として、判定してくれません。

これも対処法はあるのでしょうか?

宜しくお願いいたします。

4

回答

90000

閲覧

4件の回答

評価

0

>〜(から)という文字は文字化けします。
おそらく指定しているエンコーディングが違うんでしょう。
何を指定していますか。

>見た目は同じでもイコール(==)として、判定してくれません。
Javaのクラス比較の基本です。

評価

0

>見た目は同じでもイコール(==)として、判定してくれません

文字を比較したい場合、==では無く.equals()を使わないと文字の比較をしてくれません。

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/String.html#equals(java.lang.Object)

ここにequalsメソッドのことが載っているので参考にしてみてください

評価

0

ありがとうございます。

>おそらく指定しているエンコーディングが違うんでしょう。

行頭は
<%@ page contentType="text/html; charset=shift_jis" language="java" errorPage="" pageEncoding="Windows-31J"  %>

にして、
文中で

request.setCharacterEncoding("Windows-31J");

を記述しています。

宜しくお願いいたします。

評価

0

元のデータがShift_JISだと、いちどJavaに取り込まれてUnicodeに変換され、さらに出力でShift_JISに変換される際に、
うまく戻らない文字があったと思います。
「〜」のほかに、「|」「-」とかもそうだったような。
(Javaのバージョンにも拠ったかも)

一番簡単なのは、出力エンコードをUTF-8にすること…ですかね。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。