5

いくつかのスロバキア文字を含む InputStream を介してカンマ区切りのファイルを読み込もうとしているので、InputStream パラメータに適切な文字エンコーディングを渡しています。しかし、それでもキャラクターは台無しになっています。

InputStreamReader stream = new InputStreamReader(inputStreamToExcel,"ISO-8859-2");

たとえば、dd890èš は dd890č になります。最後の 2 つのスロバキア文字がめちゃくちゃになりました。

助けてください。

4

3 に答える 3

2

これは、エンコーディングが原因です。「ISO-8859-2」エンコーディングで InputStreamReader を作成しています。

「UTF-8」を使用してみてください。また、ファイルのエンコーディングを確認してください。

于 2012-06-21T13:55:55.413 に答える
0

Notepad ++([エンコード]-> [文字セット])またはその他のエディターを使用して、ファイルのエンコードを判別できます。コードに問題はありません。適切なエンコーディングを見つける必要があります。

于 2012-06-21T14:06:09.700 に答える
0

org.apache.commons.lang.StringEscapeUtils escapeHtml(value)が問題を解決しました。エスケープHTMLを介して、正しい文字がアプリケーションによって読み取られたことを分析するのに役立つ正確なhtmlエンティティコードを確認できましたが、文字列に割り当てられると、どういうわけか間違った形式に変換されます。ただし、unescapedHtml文字列が渡されて表示されると、ブラウザはHTMLエンティティコードを正しく理解するため、ブラウザによって適切に表示されます。

参照:http ://www.w3schools.com/tags/ref_ascii.asp http://www.alanwood.net/demos/ansi.html

これが私の分析です。誰かが追加するポイントがある場合は、追加してください。

于 2012-06-25T17:52:56.767 に答える