js地址栏传参中文乱码解决

引言
今天在工作过程中遇到一个很奇怪的问题:
同样的中文传参在PC端浏览器中新的页面接受正常,
但是测试人员在测试移动端时却发现中文乱码。
google,百度了一段时间,一直没有找到问题的原因。
(如果你知道原因也希望你能告诉我,谢谢~)

虽说没有找到为什么会造成这样不一致,但是还是解决了。
利用Global对象的encodeURI()和encodeURIComponent()方法,以及其对应的decodeURI()、decodeURIComponent()方法。

encodeURI() 
此函数可把字符串作为 URI 进行编码,
此方法接收一个字符串URIstring,含有 URI 或其他要编码的文本,
返回值为URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。
提示:如果 URI 组件中含有分隔符,
比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。
encodeURIComponent() 
此函数可把字符串作为 URI 组件进行编码,
此方法接收一个字符串URIstring,含有 URI 组件或其他要编码的文本,
返回值为URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。
提示:请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,
前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串),
因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。

decodeURI()
此函数可对 encodeURI() 函数编码过的 URI 进行解码,
参数为一个字符串URIstring,含有要解码的 URI 或其他要解码的文本,
返回值为URIstring 的副本,其中的十六进制转义序列将被它们表示的字符替换
decodeURIComponent() 
此函数可对 encodeURIComponent() 函数编码的 URI 进行解码,
参数为一个字符串,含有编码 URI 组件或其他要解码的文本,
返回值为URIstring 的副本,其中的十六进制转义序列将被它们表示的字符替换。
为了避免遇到同样的问题,当大家需要地址栏传参时,最好采用上面的方法进行编码、解码。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,837评论 0 4
  • 说点闲言碎语吧 1、简书:这几天很多时间都泡在这个网站上,以至于每天的新概念英语中断了,哈哈,今儿赶快恢复过来吧。...
    燕儿姐陪你闯职场阅读 1,612评论 0 3
  • 陪外国客户、同事或者朋友去中国餐馆吃饭,是很多人都经历过的事。 来中国,肯定要吃中国菜。工作结束后,选一家中餐馆,...
    凯文英语工作室阅读 3,573评论 0 0
  • 也许你在学校时无忧无虑,一天所做的事无非是上课,做作业,吃饭,睡觉,玩。当然在学校也只能做这些事吗?当然选择权在你...
    一飞创作阅读 3,251评论 0 0
  • 【小小陪伴】20170516学习力践行记录D1:彭彭的预热,给了自己勇气和信心!因为希望宝贝是快乐的,自由的,所以...
    睿依show阅读 1,454评论 0 0

友情链接更多精彩内容