- PR -

native2asciiを使用しないでpropertiesファイルから日本語を取得

投稿者投稿内容
henachoco
常連さん
会議室デビュー日: 2005/11/21
投稿数: 29
お住まい・勤務地: 新ハンドル:t_yamo
投稿日時: 2005-12-23 13:32
すみません。回答した者が質問します。

「Propertiesを使う」というのは、「Propertiesを使い、且つ、ハム★さんのコードのような変換を入れる」という意味と考えて宜しいでしょうか。
それとも、「変換を自分で入れなくても読めるよ」ということでしょうか。

以下、実験に使ったコードです。
コード:
package sample;
import java.io.FileInputStream;
import java.util.Properties;
public class Main {
  public static void main(String[] args) throws Throwable {
    Properties prop = new Properties();
    prop.load(new FileInputStream("res.txt"));
    String rawVal = prop.getProperty("key1");
    String convVal = new String(rawVal.getBytes("ISO-8859-1"), "Windows-31J");
    System.out.println("無変換の値は[" + rawVal + "]です。"); // 化ける
    System.out.println("再変換の値は[" + convVal + "]です。"); // 化けない
  }
}


Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2005-12-27 10:34
参考になるかわかりませんが、私の場合を紹介します。

私は.propertiesファイルを扱うときは、テキストエディタで
直接日本語の修正をするようなことはしません。

新規のときはプログラムでデフォルト値を設定し、
そうでないときはload()することによって必ず java.util.Propertiesの
オブジェクトを生成し、プログラム上で値を変更した後、store()します。

したがって、エンコーディングの変換を行うようなコードは特に
記述しません。

.propertiesを編集するGUIのアプリを1つ作ってありますから、いろいろな
アプリに使えます。
デスクトップアプリの場合には設定値を変更するダイヤログをそのプログラム
自体に組み込んでしまいます。
henachoco
常連さん
会議室デビュー日: 2005/11/21
投稿数: 29
お住まい・勤務地: 新ハンドル:t_yamo
投稿日時: 2005-12-27 10:59
「対象ファイルが非ISO8859-1の文字コードで記されている」という前提がない場合はKissingerさんの方法が一番良さそうですね。

ただ、今回の場合は何らかの理由で「対象ファイルが非ISO8859-1の文字コードで記されている」という前提のようでしたので、先の疑問(2005-12-23 13:32の投稿)が出てきました。

引用:

Kissingerさんの書き込み (2005-12-27 10:34) より:
.propertiesを編集するGUIのアプリを1つ作ってありますから、いろいろな
アプリに使えます。
デスクトップアプリの場合には設定値を変更するダイヤログをそのプログラム
自体に組み込んでしまいます。



私の場合はEclipseプラグインのプロパティエディタを使って編集してます。
Eclispe上で何も意識せずに編集できるため重宝しています。
http://propedit.sourceforge.jp/

Kissingerさん、情報ありがとうございます。

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