5

我正在尝试通过包含一些斯洛伐克语字符的 InputStream 读取逗号分隔的文件,因此我在 InputStream 参数中传递了正确的字符编码。但是角色仍然变得一团糟。

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

例如 dd890èš 变成 dd890č 最后两个斯洛伐克字符搞砸了。

请帮忙。

4

3 回答 3

2

这是因为您的编码。您正在使用“ISO-8859-2”编码创建 InputStreamReader。

尝试使用“UTF-8”。还要检查文件的编码是什么。

于 2012-06-21T13:55:55.413 回答
0

您可以使用 Notepad++ (Encoding->Character Set) 或其他编辑器来确定文件的编码方式。您的代码没有任何问题。你只需要找到正确的编码。

于 2012-06-21T14:06:09.700 回答
0

org.apache.commons.lang.StringEscapeUtils escapeHtml(value) 解决了这个问题。通过 escapeHTML,我能够看到准确的 html 实体代码,这有助于我分析应用程序读取了正确的字符。但是当它被分配给 String 时,它以某种方式被转换为错误的格式。但是,当将 unescapedHtml 字符串传递给浏览器时,它会被浏览器正确显示,因为浏览器可以正确理解 HTML 实体代码。

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

这是我的分析。如果有人有什么要补充的,请补充。

于 2012-06-25T17:52:56.767 回答