web-dev-qa-db-ja.com

utf 8文字を含むプロパティファイルからの読み取り

UTF-8文字セットのメッセージで構成されるプロパティファイルを読んでいます。

問題

出力は適切な形式ではありません。 InputStreamを使用しています。

プロパティファイルは次のようになります。

username=LBSUSER
password=Lbs@123
url=http://localhost:1010/soapfe/services/MessagingWS
timeout=20000
message=Spanish character are = {á é í, ó,ú ,ü, ñ, ç, å, Á, É, Í, Ó, Ú, Ü, Ñ, Ç, ¿, °, 4° año = cuarto año, €, ¢, £, ¥}

そして、私はこのようなファイルを読んでいます、

Properties props = new Properties();
props.load(new FileInputStream("uinsoaptest.properties"));
String username = props.getProperty("username", "test");
String password = props.getProperty("password", "12345");
String url = props.getProperty("url", "12345");
int timeout = Integer.parseInt(props.getProperty("timeout", "8000"));
String messagetext = props.getProperty("message");
System.out.println("This is soap msg : " + messagetext);

上記のメッセージの出力は

enter image description here

行の後にコンソールにメッセージが表示されます

{************************ SOAP MESSAGE TEST***********************}

このファイルを正しく読み取るための助けを得ることができれば私は義務があります。別の方法でこのファイルを読み取ることはできますが、コードの変更を減らしたいと考えています。

15
Som

Properties.load(Reader reader)InputStreamReaderを使用します:

FileInputStream input = new FileInputStream(new File("uinsoaptest.properties"));
props.load(new InputStreamReader(input, Charset.forName("UTF-8")));
44
Würgspaß

代わりにprops.load(new FileReader("uinsoaptest.properties"))を使用してください。デフォルトでは、エンコーディングCharset.forName(System.getProperty("file.encoding"))を使用します。これは、System.setProperty("file.encoding", "UTF-8")またはコマンドラインパラメータ-Dfile.encoding=UTF-8を使用してUTF-8に設定できます。

2

誰かが@Valueアノテーションを使用している場合、StringUilsを試すことができます。

@Value("${title}")
private String pageTitle;

public String getPageTitle() {
    return StringUtils.toEncodedString(pageTitle.getBytes(Charset.forName("ISO-8859-1")), Charset.forName("UTF-8"));
}
1
Ilya Khudyakov

FileInputStreamオブジェクトを作成するときに、UTF-8エンコーディングを指定する必要があります。次のコンストラクタを使用できます。

new FileInputStream("uinsoaptest.properties", "UTF-8");

デフォルトでUTF-8ファイルを読み取れるようにJVMを変更する場合は、JVMオプションのJava_TOOL_OPTIONSを次のように変更する必要があります。

-Dfile.encoding=UTF-8
0
Lexicographical