我有一个文本文件,其中包含 ø 和 ß 等 WINDOWS-1252 字符。该文件通过表单提交上传到 servlet,在该 servlet 中使用 opencsv 对其进行解析,并作为 List 对象返回到显示该文件的 jsp 页面。 utf-8 字符显示为 ?我试图找出编码过程中可能出错的地方。 我尝试了很多东西:
我的页面有标签
<%@page contentType="text/html" pageEncoding="WINDOWS-1252"%>
文件输入已编码 -
new FileInputStream(file), "WINDOWS-1252")
每个字符串都经过编码 -
s = new String(s.getBytes("WINDOWS-1252"));
还有什么地方编码会失败?有什么想法吗?
最佳答案
一些故障排除建议:
在各个阶段调试打印或以其他方式检查十六进制文本,并验证编码是否确实符合您的预期。
确保没有 BOM(字节顺序标记),如果有并且您没有简单的方法来摆脱它,请查看此问题和其中的链接:Reading UTF-8 - BOM marker
关于java - 将文件中的 WINDOWS-1252 编码文本显示为 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13772413/