Java 将文件中的WINDOWS-1252编码文本显示为html
我有一个WINDOWS-1252字符的文本文件,如ø和ß。该文件通过表单提交上传到servlet,在servlet中使用opencsv进行解析,并作为列表对象返回到显示该文件的jsp页面。 utf-8字符显示为?我试图找出编码过程中可能出现的错误。 我试过很多东西:Java 将文件中的WINDOWS-1252编码文本显示为html,java,utf,Java,Utf,我有一个WINDOWS-1252字符的文本文件,如ø和ß。该文件通过表单提交上传到servlet,在servlet中使用opencsv进行解析,并作为列表对象返回到显示该文件的jsp页面。 utf-8字符显示为?我试图找出编码过程中可能出现的错误。 我试过很多东西: 我的页面有标签 文件输入已编码-新文件输入流(文件),“WINDOWS-1252”) 每个字符串都经过编码-s=新字符串(s.getBytes(“WINDOWS-1252”) 编码还能在哪里失败?有什么想法吗?一些故障排除建议:
- 我的页面有标签
- 文件输入已编码-
新文件输入流(文件),“WINDOWS-1252”)
- 每个字符串都经过编码-
s=新字符串(s.getBytes(“WINDOWS-1252”)代码>
编码还能在哪里失败?有什么想法吗?一些故障排除建议: 调试打印或在不同阶段以十六进制形式检查文本,并验证编码是否真的是您所期望的 确保没有BOM(字节顺序标记),如果有,请查看此问题和其中的链接,并且您没有简单的方法来消除它:确定问题已修复。 所以第一个问题是,它根本不是utf-8文件,而是WINDOWS-1252文件。我决定使用juniversalchardet库(非常有用且易于使用)。 然后,我必须确保使用FileInputStream读取的文件具有正确的字符集:
new FileInputStream(file), "WINDOWS-1252")
我只需要确保在jsp文件中使用标记
差不多就是这样-
(1) 确定字符集
(2) 确保你读的文件是正确的
(3) 确保显示正确ok我的坏tt没有在utf-8中解码,而是在WINDOWS-1252中解码。使用juniversalchardet确定编码。