码迷,mamicode.com
首页 > 其他好文 > 详细

如何解决表单提交的中文乱码问题

时间:2021-01-05 11:42:47      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:serve   idt   问题:   har   乱码问题   content   服务器配置   服务器   username   

 

sessiontest1.html页面有一个form表单,常用的表单提交方式有get()请求和post()请求方式。下面来看一下jsp中两种请求方式的中文乱码问题的解决办法。(我所有页面的编码都设置成了gb2312)

(1)get()请求方式的中文乱码问题页面

sessiontest.html页面的表单提交方式为get()。

技术图片

 

sessiontest.jsp页面用来接收sessiontest.html页面表单中提交过来的数据并将其显示在 页面中。

技术图片

 

开启Tomcat服务器,在浏览器中 运行(URL中会出现参数),出现了中文乱码。

sessiontest1.html运行界面

技术图片

 

sessiontest2.jsp运行界面

技术图片

 

解决get()请求中的中文乱码问题:

String username=new String(str.getBytes("ISO-8859-1"),"gb2312");


技术图片

 

再运行后,发现get()请求中的中文乱码问题以及解决。

技术图片

 


(2)post()请求方式的中文乱码问题页面

sessiontest.html页面的表单提交方式为post()。

技术图片

 

sessiontest.jsp页面用来接收sessiontest.html页面表单中提交过来的数据并将其显示在 页面中。

技术图片

 

sessiontest1.jsp运行界面同上面一致

sessiontest2.jsp运行界面

技术图片

 

解决post()请求中的中文乱码问题:

在使用request来获取post()请求中的参数时,先设置编码。

request.getParameter("username");

技术图片

 

再运行后,发现post()请求中的中文乱码问题以及解决。

技术图片

 


总结:

a、设置页面编码,若是jsp页面,需编写代码<%@page language="java" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" %>

若 是 html 页 面 , 在 网 页 头 部 ( < head>< /head> ) 中 添 加 下 面 这 段 代 码 < meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

b 、 将 form 表 单 提 交 方 式 变 为 post 方 式 , 即 添 加 method="post"; ) 在 Servlet 类 中 编 写 代 码request.setCharacterEncoding("UTF-8"),而且必须写在第一行。

c 、 如 果 是 get 请 求 , 在 Servlet 类 中 编 写 代 码 byte [] bytes = str.getBytes("iso-8859-1");String cstr = new String(bytes,"utf-8");

或者直接修改Tomcat服务器配置文件server.xml增加内容:URIEncoding="utf-8"

 

(1)解决get()请求中的中文乱码问题:

在使用request来获取get()请求中的参数后,把参数的编码转化成也买你所设置的编码(我的是gb2312)。

 new String(str.getBytes("ISO-8859-1"),"gb2312");

(2)解决post()请求中的中文乱码问题:

在使用request来获取post()请求中的参数时,先设置编码。

request.getParameter("XXX");

如何解决表单提交的中文乱码问题

标签:serve   idt   问题:   har   乱码问题   content   服务器配置   服务器   username   

原文地址:https://www.cnblogs.com/csk001/p/14223378.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!