您的位置:首页 > Web前端 > JavaScript

JSP 文件中文乱码的类型分析及解决方案

2017-07-11 13:58 246 查看
1、客户端乱码

解决方案:在 jsp 文件上加以下代码:

<%@ page language="java" contentType="text/html"; charset=utf-8"
pageEncoding="utf-8"%><!--关键是pageEncoding要设置为utf-8,否则乱码依旧存在-->
<meta http-equiv="Content-Type" content="text/html"; charset=utf-8">

2、服务器端乱码
解决方案:在 jsp 文件上加以下代码:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%><!--关键是pageEncoding要设置为utf-8,否则乱码依旧存在-->


上面解决完服务器端乱码可能还是会导致乱码,因为尚未解决“传输过程乱码”问题。

3、传输过程乱码
分为 GET 和 POST 提交方式这两种

3.1、GET 方式提交解决方案:

获取属性值格式:

String username = request.getParameter("username");
//解决传输过程乱码(get方式提交表单)
String usernameChinese = new String(username.getBytes("iso-8859-1"),"utf-8");<!--将编码转化为 utf-8 编码-->
out.print(usernameChinese);
3.2、POST 方式提交解决方案:
比较方便,设置一句话(全局作用域)搞定:

//解决传输过程乱码post方式提交表单一次性设置编码格式即可!
request.setCharacterEncoding("utf-8");

3.3、另外一种解决 GET 方式提交表单乱码解决方案(简便许多):
直接在文件:C:\apache-tomcat-7.0.47\conf\server.xml(根据你安装路径具体去找此文件),然后修改如下:



不过发现重启 tomcat 之后此文件又恢复回去了,即修改无效,如图所示在另外一个文件修改保存后再回去之前那文件修改并保存就生效了,如下图所示:



到此就解决了 GET 方式提交表单乱码了,但是 POST 这种解决方式不起作用,于是就用上述方法3.2去解决即可!

查看传输过程是否乱码可以在控制台输出,再到 console 窗口查看:

System.out.println(username);

可以自己写个表单提交测试测试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: