问题情景

有一个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中文参数乱码问题(不是简单编码)相关推荐

  1. Js的Url中传递中文参数乱码的解决

    一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面 Javascript代码: 2. 接收参数页面:test02.html 二:如何获取Url ...

  2. JSP中文及传中文参数乱码解决方法小结

    在使用JSP的过程中,最使人头疼的一个问题就是中文乱码问题,以下是我在软件开发中遇到的乱码问题以及解决方法. 1.JSP页面乱码 这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要在 ...

  3. jquery 乱码 传参_jquery ajax传递中文参数乱码问题及解决方法说明

    jQuery传递中文参数乱码,原因是默认的传递方式没有采用UTF-8,所有我们可以在传递参数的时候对参数进行编码,然后再操作,代码如下,红色的代码为传递的参数,已标注 smsubmitclick = ...

  4. php考过来运行后报乱码,PHP接收GET中文参数乱码怎么办

    [摘要] PHP即"超文本预处理器",是一种通用开源脚本语言.PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言.PHP独特的语法混合了C.Java.Perl以及 ...

  5. ThinkPHP3.2.3分页中文参数乱码问题及解决

    ThinkPHP3.2.3分页中文参数乱码问题及解决 参考文章: (1)ThinkPHP3.2.3分页中文参数乱码问题及解决 (2)https://www.cnblogs.com/shenxinpet ...

  6. html页面url中文传值乱码,URL传参时,中文参数乱码的解决方法

    URL传参时,中文参数乱码的解决: 今天在工作中遇到了这样的一个问题,在页面之间跳转时,我将中文的参数放入到url中,使用location进行跳转传参,但是发现接收到的参数值是乱码.我的代码是这样写的 ...

  7. hibernate之HQL传中文参数乱码 解决办法

    在spring+hibernate中:Hql中有中文参数(如from test as c where c.name='张三')的话被翻译成sql的时候会出现乱码,解决办法是在application.x ...

  8. 框架页,URL中文参数乱码

    在web.config这样声明编码   <globalization requestEncoding="utf-8"  responseEncoding="utf- ...

  9. java中文 x_java环境url中文参数乱码处理

    在做搜索开发过程中,由于翻页功能需要,要把当前查询的中文条件放在URL中带到服务器进行下一页查询,结果出现乱码情况. 此时情况有如下两种: 1.在输入框输入搜索内容,直接通过from提交,参数值正常读 ...

  10. 异常:Get请求提交过来的中文参数乱码

    一.产生环境 spring boot项目的controller接收Get请求提交的中文参数发生乱码 二.异常情况 中文乱码 三.产生原因 因为内置了tomcat,即使我们在application.ym ...

最新文章

  1. linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解
  2. 率土之滨鸿蒙之初,率土之滨:最记仇联盟?投诚玩家结算前被乱世,称是主盟要求...
  3. 打包filemanager-webpack-plugin的报错和解决
  4. gzip与patch说明
  5. MySQL三大日志及主从复制的原理
  6. Lucene6去掉了Filter但是可以用BooleanQuery实现Filter查询
  7. 读“苹果上周发布了Mac OS X Mountain Lion系统”新闻的感想
  8. python基础知识 ~ 异常处理与导入
  9. Linux下编写C程序( GCC )
  10. 如何安装Vmware ESXi 6.7(图文介绍)
  11. 硬盘序列号更改工具 v0.1 下载
  12. PandoraBox 路由器 IPv6穿透
  13. 【散文诗】STM32时钟框图
  14. nc361t支持的服务器,使用5760/3850 WLC的外部RADIUS服务器EAP身份验证配置示例
  15. 二次反序列化 看我一命通关
  16. android 输入法弹出 标题栏不被顶出去
  17. 桌面我的额计算机丢了,电脑中毒后,桌面上的文件都不见了怎么办?
  18. 阴影(shadow mapping)(硬阴影)
  19. 手机里有哪些堪称神器的 APP?
  20. 你看好我国网约车生态吗?

热门文章

  1. 浅析爱心代码的绘制思路——python实现
  2. SpringSecurity 密码加密
  3. 高中生可发表论文的学术期刊涵盖TCR历史期刊
  4. 花样16流水灯c语言程序,单片机控制花样流水灯原理图及程序
  5. CAN总线(一)——CAN总线是什么,在哪用,怎么用?
  6. 【技能积累】写邮件时的常用表达
  7. [爬虫]爬取猫眼电影票房信息(信息字体加密)
  8. MVP释义:做最小可行产品
  9. 安装、选择-如何制作U盘系统盘以及U盘安装操作系统的方法 -by小雨
  10. 单片机音频节奏灯_基于单片机的音乐节奏彩灯控制系统设计