1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 报错解决:form表单提交存入数据库出现中文乱码

报错解决:form表单提交存入数据库出现中文乱码

时间:2020-03-25 02:10:39

相关推荐

报错解决:form表单提交存入数据库出现中文乱码

遇到问题:在JavaWeb学习阶段,通过表单提交对数据库数据进行修改,发现原本为中文字段的数据,表单提交之后都变成了乱码。

解决措施:针对form表单的请求方式修改编码格式

get和post请求的区别

get请求的请求参数会附在URL之后(将数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连。而post请求是将表单的内容放在Html header里面发送到所请求的action中,通过request body传递参数;get请求提交的URL数据有限制(浏览器或者服务器的限制,HTTP协议对URL长度并无限制),但是post请求无限制;post请求相对于get请求更为安全。get请求传递的参数会显示在URL中,容易被人通过地址获取私人信息,但是post请求的数据不会被用户看到,安全性更高。

更多细节参考:史上最容易理解————GET和POST两种基本请求方法的区别

乱码问题解决

参考:jsp如何解决Form表单乱码问题; form表单提交中文乱码的详细解析

get请求

服务器是由Tomcat默认的编码格式,或者自定义的编码格式进行编码,这个编码过程是通过Tomcat服务器完成的。因此,如果是对于form表单的get请求,存入数据库出现中文乱码,基本就是Tomcat服务器本身的编码配置问题:

对于Tomcat 7及以前的版本,默认编码格式为:ISO- 8859-1。在配置文件./conf/server.xml修改以下代码行,添加URIEncoding="UTF-8"即可。

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>

对于Tomcat 8版本及之后的版本,默认编码格式为UTF-8

post请求

由于请求的数据是作为请求体的一部分传递给服务器的,所以只要修改请求体内的编码即可。只要在服务器端的最开始处将请求的数据编码格式修改为UTF-8即可,插入以下语句。

request. setCharacterEncoding(“UTF-8”);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。