关于从后台向前端响应数据后原页面数据乱码问题的解决方案
问题描述:我原页面有一个表格,通过servlet代码向表格添加数据,直接访问这个页面数据正常展示,但是通过后端跳转到该页面后原页面静态数据乱码。
解决方案:
造成这种现象的原因是浏览器编码格式和web服务器编码不一致,所以我们只需要修改web服务器的编码格式就行。以Tomcat服务器为例,修改Tomact的配置信息。
找到Tomcat的配置文件:web.xml
路径在:
Tomcat安装目录\conf
在servlet标签下添加:
<init-param>
<param-name>fileEncoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
保存重启就好了
中文乱码问题的处理常用方式
1、在Java代码中指定编码格式
//指定request请求时的字符编码格式
req.setCharacterEncoding("UTF-8");
//设置response响应的字符编码格式
resp.setCharacterEncoding("UTF-8");
//设置响应内容类型为 text/html(文本/超文本标记语言);文本编码为UTF-8
resp.setContentType("text/html'charset=UTF-8");
这种方式有时直接写在方法内开头能用,有时写在getwrite()方法上一行好使,具体根据自己开发环境测试吧。
2、设置前端页面编码格式
<meta charset="UTF-8"> html页面
jsp页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
3、设置数据库编码格式
-- 在数据库中数据该代码,查看数据库的编码格式
show variables like ‘character_set_database’;
-- 修改数据库的字符编码位utf8格式
alter database hcwx character set utf8;