- PR -

Property ファイルからの文字列は文字化け

投稿者投稿内容
Mxfull
大ベテラン
会議室デビュー日: 2006/02/15
投稿数: 146
投稿日時: 2006-11-13 10:05
お世話になります。

JSFでPGを製作しています。あるPropertiesファイルから日本語を
含める文字列を読み込み、OutputTextに表示したいですが、どうしても
文字化けしてしまいます。やり方としては下記の通りです。

ResourceBundle _rb=ResouceBundle.getBundle("configer",locale);
this.message=_rb.getMessage("message");

このmessageを表示すると文字化けです。
JSPファイルのcharsetはSHIFT-JISとセットしております。

ご存知の方は教えていただけませんか?
宜しくお願いいたします。
84
ベテラン
会議室デビュー日: 2005/11/04
投稿数: 83
投稿日時: 2006-11-13 10:25
java.util.Propertiesクラスのソースを見てもらえばわかると思いますが、
・Properties#load()
・Properties#store()
の両メソッドともエンコーディングが"ISO 8859-1"になっています。
Propertiesクラスはエンコーディング形式を変更するようなメソッドを持っていないので
日本語を文字化けせずに読み書きすることはできません。

@java.util.Propertiesクラスをextendsして
load、storeをオーバーライドし、
MS932などの形式を指定して読み書きできるようなメソッドにする。
A独自の設定ファイル読み書きクラスを作成する。

解決策としてはこんなところですかね。
30分もあれば実装できるので、そんなに難しくないと思います。
sawat
大ベテラン
会議室デビュー日: 2006/08/02
投稿数: 112
投稿日時: 2006-11-13 10:31
native2ascii使えばいいじゃん。

つーかjavadocぐらい読もうよ。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Properties.html
http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/windows/native2ascii.html
Mxfull
大ベテラン
会議室デビュー日: 2006/02/15
投稿数: 146
投稿日時: 2006-11-13 11:55
native2asciiで確認した所、だめです。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-11-13 12:13
引用:

Mxfullさんの書き込み (2006-11-13 11:55) より:
native2asciiで確認した所、だめです。



なにがどうだめなのか。

通常はnative2asciiで解決する問題だし、そうするのが王道だが、
それで解決しないと言うならその状況を説明しましょう。

使い方、考え方を間違えている可能性はないのですか?
エンコードの指定の誤り、native2ascii前のファイルを参照していた等、
間違える要素はそれなりにあります。
ほーち
会議室デビュー日: 2005/12/10
投稿数: 19
お住まい・勤務地: 石川県
投稿日時: 2006-11-13 12:17
SHIFT-JISのハイフンが問題?
Mxfull
大ベテラン
会議室デビュー日: 2006/02/15
投稿数: 146
投稿日時: 2006-11-13 12:52
お世話になっております。

普通はnative2asciiはプロンプトで使いますが、
今回の場合はどこでどう使いますか?
つかり、PGの中には使えますか?

宜しくお願いいたします。
_________________
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2006-11-13 13:00
「だめです」ってのは、やってみてだめだったんじゃなくて、
プログラム中で使えそうにないからだめだ、って意味だったんですかね。
引用:

Mxfullさんの書き込み (2006-11-13 12:52) より:

今回の場合はどこでどう使いますか?


native2asciiを、プロンプト以外から使う、なんて考えたこともありませんが。
引用:

つかり、PGの中には使えますか?


そんなことを考えるくらいなら、ResourceBundleなんか使わずに、
普通のファイルにして、ストリームから読み込んで分解して、
Mapにでも格納した方が早いしスマートだと思いますよ。
84の提示してらっしゃる方法とたいして変わりませんが。

いちいちコンパイルするのが面倒だということなら、Antを使うのをお勧めします。

[ メッセージ編集済み 編集者: Edosson 編集日時 2006-11-13 13:02 ]

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