![](/img/trans.png)
[英]Reading from Windows-1252 format from Oracle and Writing to XML file with Latin1 characters UTF-8 encoded
[英]displaying WINDOWS-1252 encoded text from file as html
我有一个文本文件,带有ø和ß这样的WINDOWS-1252字符。 该文件通过表单提交上载到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(字节顺序标记),如果有并且您没有摆脱它的简便方法,请查看此问题并在其中链接: 读取UTF-8-BOM标记
确定问题已解决。 因此,第一个问题是它根本不是utf-8文件,而是WINDOWS-1252。 我确定使用juniversalchardet lib(非常有帮助且易于使用)。 然后,我必须确保使用FileInputStream读取具有正确字符集的文件:
new FileInputStream(file), "WINDOWS-1252")
我只需要确保使用标签<%@page contentType="text/html" pageEncoding="WINDOWS-1252"%>
在jsp文件中以正确的字符集显示它即可
差不多了
(1)确定字符集
(2)确保您正在正确读取文件
(3)确保正确显示
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.