首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

中文编码问题详解

GBK 23940 双字节 扩展自GB2312,支持更多汉字,范围从8140~FEFE(去掉XX7F),能表示21003汉字,兼容GB2312。...如果在Header中传递非ASCII字符时,需要将这些字符用org.apache.catalina.util.URLEncoder编码才可. 1.5 POST表单的编解码 POST表单提交的参数的解码在第一次调用...request.getParameter时发生,POST表单参数通过http的body传递到服务端。...整个流程是点提交时,浏览器根据contenttype的charset对表单参数编码,提交到服务端,服务端同样用contenttype中的字符集进行解码,所以post表单的参数一般不会乱码。...注意:要在第一次调用request.getParameter方法之前设置request.setCharacterEncoding(charset),否则POST表单提交的数据可能出现乱码

3K10

第109天:Ajax请求GET和POST的区别

一般来说,尽量避免使用Get方式提交表单,因为有可能会导致安全问题 三、AJAX乱码问题   产生乱码的原因:     1、xmlhttp 返回的数据默认的字符编码是utf-8,如果客户端页面是gb2312...或者其它编码数据就会产生乱码     2、post方法提交数据默认的字符编码是utf-8,如果服务器端是gb2312或其他编码数据就会产生乱码   解决办法有:     1、若客户端是gb2312编码,...则在服务器指定输出流编码     2、服务器端和客户端都使用utf-8编码     gb2312:header('Content-Type:text/html;charset=GB2312');     ...请求(或凡涉及到url传递参数的),被传递的参数都要先经encodeURIComponent方法处理.如果没有用encodeURIComponent处理的话,也会产生乱码....3、收集的数据及HTML表单内的输入字段名称的总长不超过1024个字符。 五、案例  1、HTML代码(原生Ajax代码) 1 <!

1.6K20

java中文乱码_Java中文乱码问题的解决方案

只要掌握了中文乱码问题产生的原因,然后对症下药,就可以顺利地解决这些问题。下面我们对容易产生乱码问题的场景进行分析,并提出解决方案。...-1转换而来,这是导致乱码产生的原因之一。...要解决上述问题,只需要将数据库默认的编码格式改为GBK或GB2312即可,不同的数据库还提供了另外的方式来处理字符编码转换的问题,读者在实际应用过程中,可针对具体情况再做具体处理,只要理解了编码转换的过程...要解决这个问题,在编译Servlet类的源程序时,可以用-encoding参数指定编码为GBK或GB2312,例如: javac –encoding GBK HelloServlet.java 对于JSP...页面,只要在page指令中用contentType属性或pageEncoding属性指定编码格式为GBK或GB2312,Web容器就可以正确转换和编译JSP文件了。

4K50

JSP中文乱码的产生原因及解决方案

下面是一些常见中文乱码问题的解决方法(下面例子中ecoding采用的是gb2312,也可设为ecoding GBK或ecoding UTF-8): 一、 JSP页面乱码 这种乱码问题比较简单,一般是页面编码不一致导致的乱码...,在JSP页面中指定编码方式(gb2312),和浏览器解码方式设置相同,即在页面的第一行加上: ,就可以消除乱码了...因为存为gb2312的文件被解码为iso8859-1,这样如有中文肯定出乱码。也就是必须一致。而第二处所在的这一行,可以没有。缺省也是使用iso8859-1的编码格式。..."> 二、 表单提交中文时出现乱码 下面是一个提交页面(submit.jsp),代码如下...("gb2312"); 四、关于jsp在MyEclipse中打开的乱码问题 对于一个已经存在的项目,Jsp文件的存储格式可能是utf-8。

3.3K60

GB2312编码_gb2312是简体中文的编码格式

在区码和位码的基础上,分别加上0XA0的偏移,便是GB2312编码; 我们制作ASCII字库时,一般只做可以显示出来的字符字模,前面命令型的ASCII字符,我们不做字模,即从“空格开始”,ASCII...该空格的区位码是“0101”,所以任意一个汉字的偏移地址公式是,Address= ( (CodeH-0x30-1)*94+(CodeL-0x30-1) )*( 16*16 )/8;CodeH是GB2312...的第一个字节,CodeL是GB2312的第二个字节,减一 是因为区位码是从第一区开始的,而字模数组表是从0开始的; (以上的计算均是按16*16取模时计算的) 当我使用单片机编程工具写程序时,编译的时候...,编译器会根据我们的选择(如MDK)会自动将字符串转换成机内码即GB2312形式进行存储,所以我们可以根据GB2312与区位码的关系进行寻找地址偏移。...uint16 hz ) 可以这样找区位码,CodeH=hz>>8; CodeL=hz&0x00ff; 注意英文和汉字的参数定义类型一个是8位uchar 型的,一个是u16位int16型的,因为GB2312

1.3K20

GB2312

Unicode、Ascall、GB2312、UTF-8等字符编码之间的关系,廖老师是这样说的: 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。...但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。...你可以想得到的是,全世界有上百种语言,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。...Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。 Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。...新的问题又出现了:如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。

1.9K90

乱码问题分析

字符乱码的事,估计大家都遇到过,很烦,什么utf-8、GBK、GB2312转来转去,不知道什么时候才能转正常。...问题描述:用户在浏览器中输入中文请求,表单post给后台为中文乱码,导致通用代扣签约失败。...不支持繁体字,所以编码后出现乱码,淘宝使用GBK解码时由于编码时已乱码解析出来乱码,导致昵称查询失败,进而微博提现失败。...服务器端接受到 HTTP 请求后要解析 HTTP 协议,其中 URI、Cookie 和 POST 表单参数需要解码,服务器端可能还需要读取数据库中的数据,本地或网络中其它地方的文本文件,这些数据都可能存在编码问题...q=” +document.myform.elements[0].value; // 假定用户在表单中提交的值是“春节”这两个字   http_request.open(‘GET’, url, true

1.4K30

form表单提交controller层接收到的值为乱码的问题

今天遇到个中文乱码问题,大体情况是这样的:前台有一个form表单,其中有几个input的控件,值是带中文的,form表单只设置了id='form1' method='post' action='xxx...' 调用submit方法提交,后台是springMVC的Controller接收请求,结果得到的参数值都是乱码。...解决方法:为form表单再设置一个属性 enctype=‘mutipart/form-data’ ,此时后台接收到的值就没有乱码了。...URL编码(就是字符流)的形式发送请求,而‘mutipart/form-data’是告诉浏览器使用二进制(就是字节流)的形式发送请求,因为直接使用了二进制,所以不存在字符编码不统一的问题,也就规避了中文乱码的问题

3.5K20

万字长文总结JAVA几种常见的编码格式和乱码原因分析

(去掉 XX7F)总共有 23940 个码位,它能表示 21003 个汉字,它的编码是和 GB2312 兼容的,也就是说用 GB2312 编码的汉字可以用 GBK 来解码,并且不会有乱码。...由于现在大部分基础的 Java 框架或系统默认的字符集编码都是 ISO-8859-1,所以很容易出现乱码问题,后面将会分析不同的乱码形式是怎么出现的。...按照 GB2312 编码 字符串“I am 君山”用 GB2312 编码,下面是编码结果: ? GB2312 对应的 Charset 是 sun.nio.cs.ext....你可能已经发现上图与 GB2312 编码的结果是一样的,没错 GBK 与 GB2312 编码结果是一样的,由此可以得出 GBK 编码是兼容 GB2312 编码的,它们的编码算法也是一样的。...POST 表单的编解码 在前面提到了 POST 表单提交的参数的解码是在第一次调用 request.getParameter 发生的,POST 表单参数传递方式与 QueryString 不同,它是通过

95020
领券