URL中文传输乱码解决
网页URL的合法字符分成两类
URL元字符:分号(;),逗号(’,’),斜杠(/),问号(?),冒号(:),at(@),&,等号(=),加号(+),美元符号($),井号(#)
语义字符:a-z,A-Z,0-9,连词号(-),下划线(_),点(.),感叹号(!),波浪线(~),星号(*),单引号(),圆括号(()`)
除了以上字符,其他字符出现在URL之中都必须转义,规则是根据操作系统的默认编码,将每个字节转为百分号(%)加上两个大写的十六进制字母。在浏览器地址栏里,浏览器认为%
是个转义字符,浏览器会把%与%
之间的编码,两位两位取出后进行解码,然后再传递给后端,然后由后端进行再次解码。
一般平台字符集编码方式相同可以使用如下方法编码传输
encodeURI、decodeURI、encodeURIComponent、decodeURIComponent
encodeURI
方法的参数是一个字符串,代表整个URL
。它会将元字符和语义字符之外的字符,都进行转义。
decodeURI
用于还原转义后的URL。它是encodeURI
方法的逆运算。
encodeURIComponent
只转除了语义字符之外的字符,元字符也会被转义。因此,它的参数通常是URL
的路径或参数值,而不是整个URL
。
decodeURIComponent
用于还原转义后的URL
片段。它是encodeURIComponent
方法的逆运算。
如果平台编码方式不同可以使用 xxx=encodeURIComponent(base64Encode(encodeURIComponent('中文字符内容'))) 方式进行传输,(此处base64xxx为自己实现的base64转码算法)
即在先将中文字符转义后,进行base64操作,然后再次转义进行传输,接收方使用decodeURIComponent(base64Decode(decodeURIComponent(xxx))) 方式解码,顺利解决不同平台导致的乱码现象。
URL中文传输乱码解决相关推荐
- URL中文传值乱码解决方式
2019独角兽企业重金招聘Python工程师标准>>> 1.java方式: java.net.URLEncoder.encode('中文',"utf-8") 2. ...
- JSP中文及传中文参数乱码解决方法小结
在使用JSP的过程中,最使人头疼的一个问题就是中文乱码问题,以下是我在软件开发中遇到的乱码问题以及解决方法. 1.JSP页面乱码 这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要在 ...
- Android读取中文文件乱码解决方法
最近在做个MP3播放器,出现中文乱码问题,在网上找了很多解决办法,我整理了出现乱码的点和解决方案,拿出来和大家共享一下 1.读取中文文件乱码解决方法 package com.apj.conv; imp ...
- requests.get()爬去中文网页乱码解决方法
requests.get()爬去中文网页乱码解决方法 当我们使用requests.get()爬取百度首页时会发现,返回的html代码中的中文发生乱码. import requestsheaders = ...
- SSH,telnet终端中文显示乱码解决办法
SSH,telnet终端中文显示乱码解决办法 vi /etc/sysconfig/i18n 将内容改为 LANG="zh_CN.GB18030" LANGUAGE="zh ...
- Jenkins控制台中文输出乱码解决方法
Jenkins控制台中文输出乱码解决方法 参考文章: (1)Jenkins控制台中文输出乱码解决方法 (2)https://www.cnblogs.com/dreamer-fish/p/1181204 ...
- .sql导入中文显示乱码解决方法
.sql导入中文显示乱码解决方法 参考文章: (1).sql导入中文显示乱码解决方法 (2)https://www.cnblogs.com/fnote/p/8051682.html 备忘一下.
- 取出Cookie中的中文显示乱码解决方法。经验证第三种方法有效。
取出Cookie中的中文显示乱码解决方法 HttpUtility.UrlEncode(Response.Cookies[ "newcookie "].Values); HttpU ...
- NotePad 打开文件 出现中文汉字乱码 解决办法
NotePad 打开文件 出现中文汉字乱码 解决办法 欢迎关注:程序员财富自由之路 现象: 出现中文汉字乱码: 解决办法: 先别着急用notepad修改编码 1. 用windows系统自带记事本打开, ...
最新文章
- ​孙家广院士:大数据软件的机遇与挑战
- 鸿蒙应用开发在线体验官网,华为鸿蒙 HarmonyOS 应用开发在线体验网站上线
- @Autowired静态变量
- lda主题模型应用java_主题模型LDA及在推荐系统中的应用
- 进程控制3--signal
- Python数据分析学习笔记04:Pandas基础
- Deep Learning of Binary Hash Codes for Fast Image Retrieval(代码跑通了)
- oracle12 group by 拼接字符串
- 好看的文章排版样式(转)
- tomcat绿色版及安装版修改内存大小的方法
- 辨别虚假流量的十二种方法
- 很不错的js幻灯片代码分享
- 【网络文摘】程序人生:我们工作到底为了什么
- labelImg 使用以及安装教程---图像标注工具
- Photoshop 换脸大法
- 网址在QQ微信被拦截怎么办 微信屏蔽网址解决办法
- 支持 Docker 运行的 ChatGPT 平替之 Alpaca-Turbo (羊驼)
- 如何预防钓鱼邮件?S/MIME邮件证书来支招
- im即时通讯开发如何理解定位技术
- 微信 SHA1 签名_微信公众号自动回复功能开发