2016-05-03 5 views
-1

私は特別txtファイル内の文字のInputStreamに渡されていない

InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("templates/createUser/new-user.txt"); 

を持っているとnew-user.txtの内容は次のとおりです。

こんにちは™どのRU ®

しかし、彼らが表示されます出力には、

と表示されます。こんにちは.

txtファイルにどのような変更を加えて、それに応じてデータが表示されるか教えてください。

だからここUPDATE

はコードです: -

Handlebars handlebars = new Handlebars(); InputStream txtInputStream = this.getClass().getClassLoader() .getResourceAsStream("templates/createUser/new-user.txt"); Template textTemplate = handlebars.compileInline(IOUtils.toString(txtInputStream)); String emailText = textTemplate.apply(vars);

+1

表示場所は?これはとても重要です。 – Tunaki

+0

コンテンツはMailServiceに渡されています。 inputStreamがMailServiceに渡されるまでは、™のように見えますが、出力メールが表示されると、 – Jagvir

+0

となります。また、_seeを定義します。これはエンコーディングの問題ですので、あなたが_see_または_read_するために使用しているツールやトリックは、エンコーディングが正しくない可能性があります。また、ファイル自体のエンコーディングは何ですか? – Tunaki

答えて

1

問題はInputStreamオブジェクトに存在しません。 InputStreamsはバイトのストリームにすぎず、エンコーディングを区別しません。

Reader reader = new InputStreamReader(inputStream, "UTF-8"); 

これを使用するのではなく:問題は、あなたのリーダーとしてこれを使うべきである

Reader reader = new InputStreamReader(inputStream); // does not specify encoding 

あなたは、その後で文字列を取得できます。

String theString = IOUtils.toString(inputStream, "UTF-8"); 

編集: コメントに完全なコードを投稿したことを気付かなかった。 2行目から最終行に変更してください:

Template textTemplate = handlebars.compileInline(IOUtils.toString(txtInputStream, "UTF-8")); 
関連する問題