不同编码的页面表单数据乱码问题解决方法
今天遇到一个很神奇的问题,用户告诉我这边网站上的表单提交到查询系统之后得不到返回值,查询结果是0条记录,但是再本地纯html执行的结果却能搜索到值。自己验证了下,果然如此,而且比对两边GET提交的参数,除了有个字段的值不同外,参数个数这些都是相同的,故考虑有可能是编码问题造成的影响。
分别打开两个文件后查看,发现两边编码确实不一致,而服务器那边为GB2312,传递UTF-8编码的参数过去不能正常解析出来,故放狗搜索,查找到form上一个很少用的属性。
accept-charset=”gb2312″
这个属性很有意思,可以设置表单以什么编码对内容进行编码,所以,给form 加上这个属性,就好了。
不过很恶心的,IE对这个属性不支持,于是只好对表单的onSubmit()方法进行下hack,加上
onsubmit=”document.charset='gb2312′;”
问题彻底解决。
相关推荐
-
JAVA POST与GET数据传递时中文乱码问题解决方法
做了N年的java开发从没有自己写过一个网站,最近乱忙活弄了一个企业家宣传网站. 跟大家一样遇到了中文字符集乱码问题,为了大家能少走一些弯路,所以在此分享一下即简单又实用的解决方法. 1. POST 数据传递 接收页 复制代码 代码如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% request.setCharacterEnco
-
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
序列化中文时之所以乱码是因为.serialize()调用了encodeURLComponent方法将数据编码了 解决方法就是进行解码 原因:.serialize()自动调用了encodeURIComponent方法将数据编码了 解决方法:调用decodeURIComponent(XXX,true);将数据解码 例如: var params = jQuery("#formId").serialize(); // http request parameters. params = deco
-
java中form以post、get方式提交数据中文乱码问题总结
一:form在前台以post方式提交数据: 浏览器将数据(假设为"中国")发送给服务器的时候,将数据变成0101的二进制数据(假设为98 99)时必然要查码表,浏览器以哪个码表打开网页,浏览器就以哪个码表提交数据.数据到达服务器后,数据(98 99)要封装到request中,在servlet中调用Request的getParameter方法返回的是字符串("中国"),方法内部拿到数字后要转成字符,一定要查码表,由于request的设计者是外国人,所以默认查的是他
-
ajax XMLHTTP Post Form时的表单乱码综合解决
Part I Post中文内容 先看看E文的表单是怎么提交的: 复制代码 代码如下: <SCRIPT language="JavaScript"> strA = "submit1=Submit&text1=scsdfsd"; var oReq = new ActiveXObject("MSXML2.XMLHTTP"); oReq.open("POST","http://ServerN
-
MySql中表单输入数据出现中文乱码的解决方法
MySQL会出现中文乱码的原因在于 1.server本身设定问题,一般来说是latin1 2.建库建表时没有制定编码格式. MySql中表单输入数据出现中文乱码的解决方法: 1.建库的时候 CREATE DATABASE test CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; 2.建表的时候 CREATE TABLE content ( text VARCHAR(100) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
-
java 页面url传值中文乱码的解决方法
中文问题,是在应用中常常遇到的问题. 这将涉及到字符解码操作,我们在应用中常常会用new String(fieldType.getBytes("iso-8859-1"), "UTF-8");等类似的方法去解码.但这种方式受具体应用环境限制,往往在应用部署环境发生改变时,还会出现中文乱码. 在这里介绍一种解决方法,可以在任何应用部署环境下通用.此方法分两步: 1.在客户端用escape(encodeURIComponent(fieldValue))方法编码,例如: 复
-
java连接mysql数据库乱码的解决方法
解决方法一: mysql安装时候的编码, 看下my.ini,有无 复制代码 代码如下: [mysql] default-character-set=utf8 [client] default-character-set=utf8 [mysqld] default-character-set=utf8创建表的时候设置: DROP TABLE IF EXISTS `Company`; CREATE TABLE IF NOT EXISTS `Company` ( `Cname` VARCHAR(10)
-
JavaEE中用response向客户端输出中文数据乱码问题分析
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象,和代表响应的response对象.request和response对象既然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了.要向客户机输出数据,只需要找response对象就行了. 复制代码 代码如下: package com.yyz.response; import java.io.IOException; import java.io.OutputStr
-
java中Filter过滤器处理中文乱码的方法
注意问题:在学习用selvert的过滤器filter处理中文乱码时,在filter配置初始化时用了utf-8处理中文乱码,而在提交的jsp页面中却用了gbk.虽然两种都可以出来中文乱码,但是却造成了处理乱码的格式不一致.所以编译出错. 解决方法:所有地方都用utf-8或gbk 复制代码 代码如下: //过滤器类CharactorFilter.jsppackage cn.com.Filter; import java.io.IOException; import javax.servlet.Fil
-
java表单提交中文乱码的解决方法
本文实例为大家分享了java表单提交中文乱码的解决方法,供大家参考,具体内容如下 主页index.xml <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>servlet演示</title> </head> <body> <h2&
随机推荐
- jsp提交到Servlet报404错误问题解决(webroot下子目录)
- 简单实现vue验证码60秒倒计时功能
- js 性能优化之算法和流程控制
- js实现具有高亮显示效果的多级菜单代码
- java Map转Object与Object转Map实现代码
- Oracle数据块损坏之10231内部事件不完全恢复
- PHP中获取时间的下一周下个月的方法
- PHP 文件系统详解
- vue绑定class与行间样式style详解
- Bootstrap多级菜单的实现代码
- 深入php之规范编程命名小结
- Bootstrap自定义文件上传下载样式
- js使用removeChild方法动态删除div元素
- jquery 选取方法都有哪些
- 对Js OOP编程 创建对象的一些全面理解
- Java 获取泛型的类型实例详解
- win2003 iis6 iis假死
- Android编程实现一键锁屏的方法
- 详解Android中Activity的四大启动模式实验简述
- C#入门之索引器使用实例