Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中读取csv文件时,斯洛伐克字符会变得一团糟_Java_Unicode_Inputstream - Fatal编程技术网

在java中读取csv文件时,斯洛伐克字符会变得一团糟

在java中读取csv文件时,斯洛伐克字符会变得一团糟,java,unicode,inputstream,Java,Unicode,Inputstream,我试图通过包含一些斯洛伐克字符的InputStream读取逗号分隔的文件,因此我在InputStream参数中传递正确的字符编码。 但角色们还是被搞得一团糟 InputStreamReader stream = new InputStreamReader(inputStreamToExcel,"ISO-8859-2"); 例如,dd890èè变成dd890è 最后两个斯洛伐克人被搞砸了 InputStreamReader stream = new InputStreamReader(input

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

InputStreamReader stream = new InputStreamReader(inputStreamToExcel,"ISO-8859-2");
例如,dd890èè变成dd890è 最后两个斯洛伐克人被搞砸了

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

请帮助。

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


尝试使用“UTF-8”。同时检查文件的编码方式。

您可以使用记事本++(编码->字符集)或其他编辑器确定文件的编码方式。你的代码没有问题。你只需要找到正确的编码

org.apache.commons.lang.StringEscapeUtils escapeHtml(值)解决了该问题。通过escapeHTML,我能够看到准确的html实体代码,帮助我分析应用程序是否读取了正确的字符。但是,当它被分配到字符串时,不知何故它被转换为错误的格式。但当传递unescapedHtml字符串以查看时,浏览器会正确地显示它,因为浏览器正确地理解HTML实体代码

参考资料:


这是我的分析。如果有人有任何需要补充的地方,请补充。

您是如何确定“正确”的编码是ISO-8859-2的?是什么产生了这个文件?@Jon Skeet与
ISO-8859-2
ISO8859_2
一起工作()@Infotechie-Windows-XP pretty忽略Java中的任何设置(在某些情况下),你必须为文件使用正确的字符集,我编写了自己的类进行测试?或squares@mKorbel:你说的“合作”是什么意思?除非你有OP的原始档案,您无法判断ISO-8859-2是否适用于该文件,这才是最重要的。@Jon Skeet接受这两个数字
ISO-8859-2
ISO8859_2
请查看我删除的帖子当我在记事本++中更改字符集时,没有字符集正确地解除字符的锁定。字符在ANSI中正确可见仅编码。@Infotechie尝试使用“ISO8859_2”而不是“ISO-8859-2”。看见