您好、欢迎来到现金彩票网!
当前位置:2019欢乐棋牌 > 中文编码 >

浏览器url传的中文是什么编码格式

发布时间:2019-06-28 07:23 来源:未知 编辑:admin

  在项目中碰到了ajax传来的参数,后台接收值乱码(如下图)的问题 在此记录一下

  也就是说URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号

  但是麻烦的是 标准的国际组织并没有规定具体的编码方法,而是交给应用程序(浏览器)自己决定。

  Edge浏览器和IE浏览器是一样的,如下图 这个的编码方式我没看出来,希望高手指点

  你有没有想过,Ukey=value这种传参方式式中, Value中包含 ? 或者 = 怎么办呢

  你有没有想过,不同的操作系统、浏览器、不同的网页字符集(charset)会对你的传值造成影响呢

  Url编码通常也被称为百分号编码(percent-encoding),是因为它的编码方式非常简单,

  使用%百分号加上两位的字符——0123456789ABCDEF——代表一个字节的十六进制形式

  对于ASCII字符,字母a 在ASCII码中对应的字节是0x61,那么Url编码之后得到的就是%61,

  对于非ASCII字符,RFC文档建议使用utf-8对其进行编码得到相应的字节,然后对每个字节执行百分号编码。

  使用Javascript先对URL编码,然后再向服务器提交,不要给浏览器插手的机会

  js中编码出生最早的一个,不提倡使用,原因是它不符合我上边(【怎样】)说的url编码原则

  所有空格、标点以及其他非ASCII字符都用%xx编码替换; 例如空格返回的是%20 字符值大于255的字符以%uxxxx格式储存

  QueryString 这个函数会自动解码,所以不需要写什么解码的语句。

  escape()不对+编码。但是我们知道,网页在提交表单的时候,如果有空格,则会被转化为+字符。服务器处理数据的时候,会把+号处理成空格。所以,使用的时候要小心。

  用这个方法会存在乱码的问题,看到很多人问这问题的时候,回答者都是让采用escape这种方法,难道这样问题就解决了吗?

  如果我想用 Jquery的serialize()方法 来获取表单值并且序列化(标准URL编码)传到后台就不方便用escape啦

  解决方案1:去掉这个设置或者改成utf-8的(这个方案的利害不用说,尤其是在项目已经快完成的时候)

  解决方案2:利用ajax的post方法,或者用Get方法,但必须作为方法的Data参数,这样在后台接收到的数据不会被编码

  解决方案4(探讨):先将QueryString解码的数据按照他原来的方式进行编码,然后再用utf8进行解码,这个方法有点问题,最后一个字符会出现乱码,还没找到原因..

  在将数据编码的时候,就不是原来的浏览器发送的编码值了,正确的是最后边应该是%9C,但现在却是%3f

  与encodeURI()的区别是,它用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。

http://gibsonfabrics.com/zhongwenbianma/74.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有