1.UrlEncode:将字符串以URL编码,所有的中文参数都会在传输过程中转化为url编码
2.iso-8859-1:是JAVA网络传输使用的标准 字符集
tomcat默认接收的编码级.
3.pageEncoding="UTF-8"的作用是设置JSP编译成Servlet时使用的编码。
4.contentType="text/html;charset=UTF-8"的作用是指定对服务器响应进行重新编码的编码。
5.页面文件编码与pageEncoding相同,否则会在jsp页面编译成servlet的时候出现乱码,进而导致响应的页面出现乱码
6.
iso-8859-1是JAVA网络传输使用的标准 字符集,而gb2312是标准中文字符集,一般是操作系统使用的文
字编码方式。
因此,当字符在网络中传递时,不管对于这个字符是怎么编码的,java都认为它是iso8859编码,因此按
照iso8859到unicode的转换规则,变成java保存字符的unicode编码,此时如果直接显示该字符时,将出
现乱码,因为它本身并不是iso8859的编码,而是GBK方式,对应unicode码自然也不正确,所以这时需要
做的是先将这个字符码可逆的转化为原先的编码值即GBK值,(转化方法就是通过getBytes(ISO-8859-1)
得到),然后java才将此GBk值的字符,以gbk到unicode的转化规则保存为java默认方式unicode码。
7.
那么我们可以得到一个编码转换的过程
假设:GBK码("你")->URLencode后变成->(?/)->Tomcat自动替你转一次ISO-8859-1->得到(
23 43 68
23 42 68
每一个符号表示为ISO-8859-1中的一个编码)->接收页面--->再转一次为ISO-8859-1的Byte数
组[23,43,68,23,42,68]--->用GBK再转为可读的文字--->(?/"---->转为("你")
解决办法:
name:从前台接受的用户名..
byte [] cc =
name.getBytes("iso-8859-1");
System.out.println(new String(cc,"gbk"));
文章转载请注明来源。新辉网主页 > 网页基础 > Javascript/Ajax >
标题:后台接收ajax提交的中文参数乱码问题及解决办法(附各种编码解释)
地址:http://www.a55.com.cn/a/7284.html
关键词:后台接收ajax提交的中文参数乱码问题及解决办法(附各种编码