IOS调起H5中文参数乱码问题(不是简单编码)
问题情景
有一个H5项目涉及到打开新窗口时地址中存在中文参数的情况,经过测试,在android中时可以的,但是在ios中会存在webview都无法打开的情况,也就是说连H5的页面都没有进入窗口就已经卡住了。
基础知识
encodeURI()
把URI字符串采用UTF-8编码格式转化成escape各式的字符串。
encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent()
把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,encodeURI()将对更多的字符编码,比如 / 等字符。所以假如字符串里面包含了URI的几个部份的话,不要用进行编码,否则 / 字符被编码之后URL将呈现错误。
encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
思考
碰到这种情况,立即想到的绝对是乱码问题,经过尝试,把中文参数换成英文,页面可以正常打开,确定了问题原因,自然就是对这个中文参数进行encodeURI编码,ok编码后重新打包,上传,测试,没有效果。。。炸了,怎么办?找ios开发去问,说是编码的问题,你转一下码,我已经转过了,没用。。。后面就陷入一遍遍的尝试中,大多数的网上资料都没有针对性的解决,只强调encodeURI和encodeURIComponent的编码。
解决办法
解决办法就是对url进行两次编码,第一次编码,中文会被转码成16进制,但是每个字符前面会有一个%号,这个%号会被看成转义字符影响浏览器的解析,所以还需要再编码一次。就是这么简单,不懂的话就怎么也解决不了,白白浪费几个小时去做无意义的尝试。
实例
let url = 'https://1234.com.cn/#/?param=中文';
let tempUrl = encodeURI(url);
let encodeUrl = encodeURI(tempurl)
IOS调起H5中文参数乱码问题(不是简单编码)相关推荐
- Js的Url中传递中文参数乱码的解决
一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面 Javascript代码: 2. 接收参数页面:test02.html 二:如何获取Url ...
- JSP中文及传中文参数乱码解决方法小结
在使用JSP的过程中,最使人头疼的一个问题就是中文乱码问题,以下是我在软件开发中遇到的乱码问题以及解决方法. 1.JSP页面乱码 这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要在 ...
- jquery 乱码 传参_jquery ajax传递中文参数乱码问题及解决方法说明
jQuery传递中文参数乱码,原因是默认的传递方式没有采用UTF-8,所有我们可以在传递参数的时候对参数进行编码,然后再操作,代码如下,红色的代码为传递的参数,已标注 smsubmitclick = ...
- php考过来运行后报乱码,PHP接收GET中文参数乱码怎么办
[摘要] PHP即"超文本预处理器",是一种通用开源脚本语言.PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言.PHP独特的语法混合了C.Java.Perl以及 ...
- ThinkPHP3.2.3分页中文参数乱码问题及解决
ThinkPHP3.2.3分页中文参数乱码问题及解决 参考文章: (1)ThinkPHP3.2.3分页中文参数乱码问题及解决 (2)https://www.cnblogs.com/shenxinpet ...
- html页面url中文传值乱码,URL传参时,中文参数乱码的解决方法
URL传参时,中文参数乱码的解决: 今天在工作中遇到了这样的一个问题,在页面之间跳转时,我将中文的参数放入到url中,使用location进行跳转传参,但是发现接收到的参数值是乱码.我的代码是这样写的 ...
- hibernate之HQL传中文参数乱码 解决办法
在spring+hibernate中:Hql中有中文参数(如from test as c where c.name='张三')的话被翻译成sql的时候会出现乱码,解决办法是在application.x ...
- 框架页,URL中文参数乱码
在web.config这样声明编码 <globalization requestEncoding="utf-8" responseEncoding="utf- ...
- java中文 x_java环境url中文参数乱码处理
在做搜索开发过程中,由于翻页功能需要,要把当前查询的中文条件放在URL中带到服务器进行下一页查询,结果出现乱码情况. 此时情况有如下两种: 1.在输入框输入搜索内容,直接通过from提交,参数值正常读 ...
- 异常:Get请求提交过来的中文参数乱码
一.产生环境 spring boot项目的controller接收Get请求提交的中文参数发生乱码 二.异常情况 中文乱码 三.产生原因 因为内置了tomcat,即使我们在application.ym ...
最新文章
- linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解
- 率土之滨鸿蒙之初,率土之滨:最记仇联盟?投诚玩家结算前被乱世,称是主盟要求...
- 打包filemanager-webpack-plugin的报错和解决
- gzip与patch说明
- MySQL三大日志及主从复制的原理
- Lucene6去掉了Filter但是可以用BooleanQuery实现Filter查询
- 读“苹果上周发布了Mac OS X Mountain Lion系统”新闻的感想
- python基础知识 ~ 异常处理与导入
- Linux下编写C程序( GCC )
- 如何安装Vmware ESXi 6.7(图文介绍)
- 硬盘序列号更改工具 v0.1 下载
- PandoraBox 路由器 IPv6穿透
- 【散文诗】STM32时钟框图
- nc361t支持的服务器,使用5760/3850 WLC的外部RADIUS服务器EAP身份验证配置示例
- 二次反序列化 看我一命通关
- android 输入法弹出 标题栏不被顶出去
- 桌面我的额计算机丢了,电脑中毒后,桌面上的文件都不见了怎么办?
- 阴影(shadow mapping)(硬阴影)
- 手机里有哪些堪称神器的 APP?
- 你看好我国网约车生态吗?