首页 > 关于java web乱码问题(不同浏览器)

关于java web乱码问题(不同浏览器)

是这样的,所有编码都是UTF-8
在服务端做了转码,将ISO-8859-1转为UTF-8;
用大部分浏览器都没有问题,除了Firefox,如果将这个转码去掉,Firefox就不乱码,但是其他浏览器乱码,不明白啊,求高人解答;
要是在服务器端判断浏览器,再做相应转码虽然可以,就像这样:

补充:乱码的地方是后台接受前台的参数乱码
主要是不明白为何会这样


你说的是哪里的位置乱码 .页面么

页面中设计是

<Connector port="8080" URIEncoding="UTF-8" />

不知道你用是什么服务器。Tomcat在server.xml中,找到Connector标签,加上

URIEncoding="UTF-8"

默认情况下为ISO8859-1 编码


1. 设置 tomcat 解析 url 的编码

假设你用 tomcat :在 conf/server.xmlConnector 节点加上 URIEncoding="UTF-8",如下:

<Connector port="8080" URIEncoding="UTF-8" />

根据文档,不设置的话默认会用 ISO-8859-1 。

然后删除服务端的 ISO-8859-1 转 UTF-8 的代码。

这样设置后,服务端使用 req.getParameter() 应该能得到正确的值。可以加 log 看看有没有拿到正确的值。

2. 设置服务端发送的响应的编码

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
    ......
    resp.setCharacterEncoding("UTF-8");
    resp.setContentType("text/html");
}

设置完后,用 firefox 浏览相应网页,打开 firebug ,应该可以看到这样的 HTTP header:

Content-Type: text/html; charset=utf-8

3. 输出的 html 中设置编码

请搜索“html charset”

<meta charset="UTF-8">
【热门文章】
【热门文章】