2012-05-28 15 views
23

私はOracle's documentationsで与えられた例を試しています。このページに示すように、Javaファイルはhereです。今このjavaファイルでは、私はLabelsBundle.propertiesファイルを同じディレクトリに保ちます。Java ResourceBundle値の先頭の空白

# This is the default LabelsBundle.properties file 
s1 = computer 
s2 = disk 
s3 = monitor 
s4 = keyboard 

値を読み取っている間、後続の空白は無視されず、先頭の空白は無視されるようです。

先頭に空白が入るようにするにはどうすればよいですか?言い換えれば

、私は

computer 

代わりの

computer 

としてs1の値を読み取るために何をすべきかが必要ですか?

答えて

31

プロパティパーサーがそれを実際の値として認識し、Java文字列がスペースのUnicodeコードポイントとして\u0020を解釈する必要があるため、Unicodeエスケープシーケンス\u0020を実行する必要があります。

また、IIRCの場合は、\ my valueのようにバックスラッシュでエスケープできます。キーのためにも動作します。あなたがバックラッシュでスペースをエスケープすることができます

+0

は、任意のエンコーディングを変更せずに動作するのでしょうか? と@Zaki:エンコードを変更せずに試したところ、 '\'はうまくいったのですか? – prongs

+0

はい、 '\ u0020'はコードです。実際には、これはnative2asciiツールの機能です。ASCII範囲外のすべての文字をこのようなUnicodeエスケープシーケンスに変換して、プロパティコード自体がASCIIとして扱われるときに文字を破棄することなくプロパティファイルを正しく読み込むようにします。 – user268396

+0

また、プロパティファイルを変更せずに行うことはできますか? Javaコードではどういう意味ですか? – prongs

15

:U0020 \

s1 =\ computer 
+0

また、プロパティファイルを変更せずに行うことはできますか? Javaコードではどういう意味ですか? – prongs

関連する問題