提交中文数据乱码问题总结

提交中文数据乱码问题总结

  1、如果提交方式为post,想不乱码,只需要在服务器端设置request对象的编码即可,客户端以哪种编码提交的,服务器端的request对象就以对应的编码接收,比如客户端是以UTF-8编码提交的,那么服务器端request对象就以UTF-8编码接收(request.setCharacterEncoding("UTF-8"))

  2、如果提交方式为get,设置request对象的编码是无效的,request对象还是以默认的ISO8859-1编码接收数据,因此要想不乱码,只能在接收到数据后再手工转换,步骤如下:

  1).获取获取客户端提交上来的数据,得到的是乱码字符串,data="???è?????"

   String data = request.getParameter("paramName");

  2).查找ISO8859-1码表,得到客户机提交的原始数据的字节数组

   byte[] source = data.getBytes("ISO8859-1");

  3).通过字节数组以指定的编码构建字符串,解决乱码

   data = new String(source, "UTF-8");

  通过字节数组以指定的编码构建字符串,这里指定的编码是根据客户端那边提交数据时使用的字符编码来定的,如果是GB2312,那么就设置成data = new String(source, "GB2312"),如果是UTF-8,那么就设置成data = new String(source, "UTF-8")

时间: 10-15

提交中文数据乱码问题总结的相关文章

提交中文数据乱码问题---web.xml

前端时间,做了个纯springmvc框架的一个后台系统,遇到了不少问题.特别是编码问题,让我纠结了很久.每次ajax传入数据的时候需要将form中的数据先进行编码 encodeURI(AA); 利用ajax传入后controll层 接受后需再转码 java.net.URLDecoder.decode(param, "UTF-8"); 才能将中文字符写到数据库里. 这样form中有中文的地方都需要这样做一下,突然觉得好麻烦.....可是我之前没记得传个数据这么麻烦啊.就在网上找啊找. 终

解决表单GET提交后台数据乱码问题

?在页面上提交数据到服务器有两种方式"GET"和"POST",当使用"GET"时,传输的数据是直接拼接在URL后面的.当数据中含有对HTML来说不安全的字符例如中文时,就会被编码,一般采用的是UTF-8编码.这时URL已经被转义成相对安全的字符串.此时再经过ios-8859-1的编码方式转换成二进制的形式跟随请求头一起发送到服务器端. ?到达服务器端时,服务器也对数据进行两次解码,服务器先把数据经过ios-8859-1解码,然后根据服务器默认的编

WEB应用常见中文数据乱码问题总结

在实际工作中,会遇到很多中文数据的乱码的问题,之所以会产生乱码,就是因为服务器和客户端沟通的编码不一致造成的,因此解决的办法是:在客户端和服务器之间设置一个统一的编码,之后就按照此编码进行数据的传输和接收. 1.以POST方式提交表单中文参数的乱码问题 客户端是以UTF-8字符编码将表单数据传输到服务器端,因此服务器也需要设置以UTF-8字符编码进行接收,服务器可以直接使用从ServletRequest接口继承而来的"setCharacterEncoding(charset)"方法进行

笨鸟先飞之Java--MySql中文数据乱码为哪般???

从开始敲drp到现在的hibernate,中文数据乱码无时无刻不"陪伴"在我的身边: 图一:在drp的分销商模块,每次修改区域虽然返回修改成功,但是每次读取到的中文数据都是"???"的字符串,但数字和字母的数据却不受影响. 图二:不管是drp还是hibernate项目,通过执行sql或者hql语句插入中文数据的,都会呈现图中的景象,甚是无语...... 但被它困扰了这么久,我也算"久病成医",今天就一起来给Java项目医治一下中文数据乱码的这个大

解决tomcat提交的数据乱码的问题

有时,开发过程中会遇到前端传入"中文"并返回时,会出现乱码!主要是因为前端通过tomcat7提交的数据就出现了乱码的问题,也就说根源在于tomcat7. 有2中方案解决该问题: (1)使用tomcat8,代替tomcat7 (2)可以修改tomcat7的server.xml中配置:

关于hibernate插入mysql数据库中文数据乱码处理

这几天在学习hibernate,在程序中将利用hibernate将数据插入的mysql数据库的时候,发现出现了中文乱码,在网上搜索了好长时间,大概的解决方法都是修改my.ini的配置文件,修改为gbk,但是插入数据还是出现乱码的情况.不过最后还是解决了.下面就说一下解决的方法. 1.找到MySql Server Instance onfiguration Wizard管理器,重新配置mysql.如图.前面的配置可以一路下一步,到了图中这一步要修改语言为gbk. 2.要删除之前建立的数据库,重新利

从内存中写入mysql中文数据乱码解决

一. 问题 数据库编码:utf8 mysql> create database dbnameDEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 表编码:utf8 drop table if exists `test`; create table `test` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', `name` varchar(50) default '', `create

如何解决MSSQL中文数据乱码问题

今天遇到了在数据库中直接写SQL语句,语句中包含中文,但是数据库的表里是包含"?" 的乱码. 我程序代码中,调试时得到的SQL不是乱码,在控制台中也不是乱码.但是在数据库中却出现了乱码. 当用MSSQL控制台去插入或更改中文数据时,中文字符可能会被显示成问号(??),以下提供2种解决办法: 1.在SQL里加上'N'强制转换编码   a.把所有字符字段都改成无符号类型,如:nchar,ntext,nvarchar    b.用查询分析器进行数据管理,在中文数据前加N,强制转换编码,如:i

表单提交中文后台乱码

通过form表单提交到后台 通过form传入后台,提交方式分为post和get两种.两者的区别需要通过提交表单后才看得出来,主要是在数据发送方式和接收方式上.Post和Get都是表单属性Method的可选值,Method的默认值为Get,两者的主要区别在于: 1.在客户端,Get方式在通过URL提交数据,提交后在地址栏中的地址会出现传入到后台的参数:而Post提交后地址栏中的地址不会出现参数. 2.在服务器端只能用Request.QueryString来获取Get方式提交来的数据,用Post方式