質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

1回答

6828閲覧

MessageResources.propertiesに記述した日本語が文字化けする

退会済みユーザー

退会済みユーザー

総合スコア0

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2016/02/01 12:09

編集2022/01/12 10:55

初めて質問投稿いたします。

Eclipse Version: Luna Service Release 2 (4.4.2)
Tomcat 8.0.22
のMessageResources.propertiesにValidatorとして以下の文を記述しています。

errors.required={0}
errors.nandgRequired=氏名と性別を入力してください
errors.nameRequired=氏名を入力してください
errors.genderRequired=性別を入力してください
errors.dobRequired=生年月日を入力してください

が、JSPファイル等全てUTF-8で設定していますが
ブラウザ上になると、
・氏名を入力してください
・性別を入力してください
・生年月日を入力してください

と文字化けします。

(ちなみに、Windows-31Jで設定した時は、クエスチョンマーク表記『????』でした)

ブラウザ上も日本語が表記される様、解決方法をご教示くださいませ。

2016.02.04 追記
tokoiさん、コメントありがとうございます!
一度PropertiesEditor Eclipse Pluginをアンインストールし、
MessageResources.properties上の日本語になっていた表記を
「\uXXXX (XXXX」に戻したところ、ブラウザ上の文字化けがなくなりました!

…ところが新たな問題が。
PropertiesEditor Eclipse Pluginを再インストールし、
サーバの始動をかけると、別の文字化けが発生します。

1.UTF-8の場合、入力した文字が”登録”ボタンを押すと文字化けする(※テキストボックスに入力したのは"明るい 安村")
イメージ説明

2.struts-config.xml、validation.xml、web.xml、JSPファイルをWindows-31Jに設定した場合、最初からこの有り様
イメージ説明

この他、エラーメッセージが「性別を選んでください??」と変なクエスチョンマークが2つ付いたりすることもありました。

一難去ってまた一難(A^-^;)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Stripe

2016/02/01 15:07

MessageResources.propertiesはどのようにロードしていますか?native2asciiとか使っていますか?
退会済みユーザー

退会済みユーザー

2016/02/01 23:00

Stripeさん、早速のコメントありがとうございます。 MessageResources.propertiesのロードは Ecripseの画面上で日本語表記が出る様、PropertiesEditor Eclipse Pluginをインストールしていますが、 native2asciiを使用するなど特別なことはしていません。 というかnative2asciiって初めて聞きました… Google先生に聞いてみます! でも使い方やヒントを教えていただけるとありがたいです。
guest

回答1

0

properties関連のapi経由では、propertiesファイルからマルチバイト文字を読み込めません。
そのため、native2asciiなどを使って変換済みのものをjavaプログラムから読み込む必要があります。
native2ascii的な処理をやってくれるのがPropertiesEditor Eclipse Pluginですが、その設定がうまくいっていないのかもしれません。

試しに、ファイルエクスプローラ(Windowsの場合)やFinder(Macの場合)から、propertiesファイルを適当なテキストエディタで読み込んでみてください。そのときに、日本語文字部分が \uXXXX (XXXXは数字)のようになっていれば、native2ascii的変換処理が成功しています。そうでなく普通の日本語として読めてしまったりする場合は、native2ascii的変換処理ができていません。

後者の場合は、PropertiesEditor Eclipse Pluginの設定を見直すか、他のプラグイン等を試してください。

まずはこの切り分けからやってみるのが良いと思います。

投稿2016/02/02 04:48

編集2016/02/02 07:15
tokoi

総合スコア65

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問