我试图通过包含一些斯洛伐克字符的InputStream读取逗号分隔文件,所以我在InputStream参数中传递正确的字符编码。 但是人物仍然搞砸了。
InputStreamReader stream = new InputStreamReader(inputStreamToExcel,"ISO-8859-2");
例如dd890èš成为dd890č 最后两个斯洛伐克人物搞砸了。
请帮忙。
答案 0 :(得分:2)
这是因为你的编码。 您正在使用“ISO-8859-2”编码创建InputStreamReader。
尝试使用“UTF-8”。还要检查文件的编码是什么。
答案 1 :(得分:0)
您可以使用Notepad ++(编码 - >字符集)或其他编辑器来确定文件的编码。您的代码没有任何问题。你只需要找到正确的编码。
答案 2 :(得分: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
这是我的分析。如果有人有任何要点,请添加。