是这样的,所有编码都是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.xml
的 Connector
节点加上 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">