2011-11-15 21 views
0

Windows環境変数%APPDATA%を読み込みます。私はUmlautsにいくつかの重大な問題を抱えています。 APDATAが"ÄÄÄ"に設定されている場合は、"'''"のようになります。私はCp1252を取得していますWindows環境変数の読み込み(エンコーディング/文字セットの問題)

String encoding_system = System.getProperty("file.encoding"); 

をプリントアウトした場合

final Process p = Runtime.getRuntime().exec("cmd.exe /C echo %APPDATA%"); 
final BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); 
String buffer; 
if((buffer = br.readLine()) != null) { 
    return buffer; 
} 

は、ここに私のコードです。 InputStreamReaderにシステムのエンコーディングを伝えようとしましたが、何も変わりません。

答えて

1

これは、環境変数の値を取得しようとする脆弱な方法です。 System.getEnv()を使用する方がよいでしょう。これにより、環境変数名をその値にリンクするMap<String, String>インスタンスが返されます。

+0

あなたの答えはありがたいですが、このプロジェクトで私はまだJava 1.4を使用しています。( – jeven

+0

@ user734535本当に1.5に導入されました。それは迷惑です –

+0

私は一時的にJava 1.6をSystem.getEnv( "APPDATA")で使用しましたが、私は同じエンコーディングの問題で終わってしまいました。その後、私は経験したことがあります。文字列をstring.getBytes()反復をすべてのCharsetに変換しようとしましたが、どれも正しい文字列を返しませんでした – jeven

関連する問題