JAVA/JS中中文编码转换
来源:互联网 发布:mac调整照片文件大小 编辑:程序博客网 时间:2024/05/21 21:38
一、JAVA中,使用UTF-8进行编码 和 使用UTF-8的UrlEncode编码结果不同
UTF-8“君山”:君山
UTF-8/UrlEncode“君山”:%e5%90%9b%e5%b1%b1
String s = "君山";String xmlUTF8 = URLEncoder.encode(s, "UTF-8");//%e5%90%9b%e5%b1%b1
二、JS中,使用函数对URL编码
encodeURI()/decodeURI():将URL中除特殊字符外全部进行UTF-8编码/解码。
var a = encodeURI("Http://localhost:8080/abc/def/efg/君山&q=1;10+a'b,cd#df");var b = decodeURI(a);
三、JS中,使用函数对URL编码
encodeURIComponent()/decodeURIComponent():将URL中除特殊字符外全部进行UTF-8编码/解码,比encodeURI更加彻底字符更多。
var a = encodeURIComponent("Http://localhost:8080/abc/def/efg/君山&q=1;10+a'b,cd#df");var b = decodeURIComponent(a);
四、URL的编解码
URL的组成部分:
http://localhost:8080/examples/servlets/servlet/君山?author=君山
PathInfo?QueryString
默认情况下,浏览器对PathInfo和QueryString编码不同(分别是UTF-8和GBk),这为服务器解码带来不小困难。
通过tomcat源码,得知对URL的URI部分进行解码的字符集是在server.xml中<Connector URIEncoding="UTF-8">中定义的,如果没有定义,默认为ISO-8859-1,所以当URI中有中文时(其中君山为PathInfo),设置一下tomcat会自动以UTF-8的形式对URI进行解码,即可通过中文RequestMapping定位Controller中的方法了。
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
以GET方式HTTP请求的QueryString和与以POST方式HTTP请求的表单参数都是作为Parameters保存的,都通过request.getParameter获取参数值,对它们的解码是在request.getParameter方法第一次调用时进行的。QueryString本身是通过Http的Header传到服务端的,而解码字符集是Header中ContentType定义的Charset(默认IOS-8859-1),要使用ContentType中定义的编码,就要将<Connector useBodyEncodingForURI="true">,注意:它并不是对整个URI都采用BodyEncoding进行解码,而仅仅是对QueryString使用BodyEncoding解码。这时就可以传递中文参数了。
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true" /> <!-- 仅仅是QueryString使用BodyEncoding解码 -->最后,可以看出URL编解码比较复杂,难以掌控,建议URL中最好不用中文。
五、POST表单的编解码
POST表单的参数传递方式:Http的Body
QueryString参数传递方式:Http的Header
表单提交时用ContentTyep的Charset编码,到服务端也是用ContentType的Chartset解码,所以一般POST表单不会出现乱码。
六、BODY的编解码
通过
String ce = request.getCharacterEncoding(); //获取服务器解码方式,
request.getrequest.setCharacterEncoding("UTF-8");//设置服务器解码方式,
- JAVA/JS中中文编码转换
- JAVA中文编码转换
- js中把中文字符转换成Utf8编码
- Java中文编码转换分析
- Java 中文 Unicode 编码转换
- Java 中文 Unicode 编码转换
- java unicode编码 中文 转换
- JS中文字符串转换unicode编码函数
- JS中文字符串转换unicode编码函数
- JS实现URL编码转换中文
- 关于中文字符传入js中接收变换成了Unicode编码的转换
- js的中文编码和java的中文编码
- Java中中文编码问题
- Java unicode中文编码转换和反转
- java中文字符乱码编码转换大全
- Java unicode中文编码转换和反转
- java unicode中文编码转换和反转
- java中文字符乱码编码转换大全
- JSP简单介绍
- Handler内部运转机制
- 图解i++和++i
- 2分钟入门dwr之java消息推送
- 线程-多个线程多个锁
- JAVA/JS中中文编码转换
- js闭包和作用域
- Java高级特性之增强for循环
- 模仿百度首页
- Community Detection 算法
- 跨域方法小结 CORS JSONP emmet window.name等
- 腾讯云学生机注册和优惠券领取地址
- Linux cmake入门使用
- 二分查找