首页 web前端 js教程 在JS中encodeURI(url)怎样才能不出现乱码?

在JS中encodeURI(url)怎样才能不出现乱码?

Mar 09, 2018 am 10:52 AM
javascript 乱码

这次给大家带来在JS中encodeURI(url)怎样才能不出现乱码?,在JS中使用encodeURI(url)的注意事项有哪些,下面就是实战案例,一起来看一下。

一般情况下, 发送 encodeURIComponent(parmeName)+"="+encodeURIComponent(parmeValue);
接收时, 直接 String paramValue = request.getParameter(paramName); // 容器自动解码.

我们知道 encodeURIComponent 使用的是 UTF-8 编码规则来编的.
如果 request.getParameter(paramName) 时,容器也按 UTF-8 解的话,是正确的. 根本无须在客户端
进行二次的 encodeURIComponent(...)

如果 request.getParameter(paramName),容器没有按 UTF-8 解的话, 结果只有一个,就是乱码!
容器按什么编码来解码,决定于 request.setCharacterEncoding(***) 或者 服务器程序配置.

如果你在 jsp 程序中,能够 request.setCharacterEncoding("UTF-8"), 并且 修改服务器配置,让容器在解 GET 提交的参数时,使用 UTF-8.

客户端提交前不用二次编码, 接收时,也只要直接 request.getParameter(paramName) 即可

为什么网上会有人提出在客户端对字符串重复编码两次呢.
如果因为项目需要,不能指定容器使用何种编码规则来解码提交的参数, 比如:需要接收来自不同页面,不地编码的参数内容时。 (又或者是开发人员被这有点复杂的东东搞得晕头转向,不懂得如何正确的去做好这接收参数的工作)
这个时候,在客户端对参数进行二次编码,可以有效的避开“提交多字节字符”的这个棘手问题。
因为第一次编码,你的参数内容便不带有多字节字符了,成了纯粹的 Ascii 字符串。(这里把编第一次的结果叫成 [STR_ENC1] 好了。[STR_ENC1] 是不带有多字节字符的)
再编一次后,提交,接收时容器自动解一次 (容器自动解的这一次,不管是按 GBK 还是 UTF-8 还是 ISO-8859-1 都好,都能够正确的得到 [STR_ENC1])
然后,再在程序中实现一次 decodeURIComponent (Java中通常使用 java.net.URLDecoder(***, "UTF-8")) 就可以得到想提交的参数的原值。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

相关阅读:

简述CSS中clearfix 的原理

CSS1与CSS2的常用属性

怎样用CSS3制作登录框

以上是在JS中encodeURI(url)怎样才能不出现乱码?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Linux中文乱码怎么解决 Linux中文乱码怎么解决 Feb 21, 2024 am 10:48 AM

Linux中文乱码问题是使用中文字符集和编码时常见的一个问题。出现乱码的原因可能是文件编码设置不正确,系统语言环境未安装或未设置,以及终端显示配置错误等。本文将介绍几种常见的解决方法,并提供具体的代码示例。一、检查文件编码设置使用file命令查看文件编码在终端中使用file命令,可以查看文件的编码:file-ifilename如果输出中有"charset

tomcat启动乱码如何解决 tomcat启动乱码如何解决 Dec 26, 2023 pm 05:21 PM

tomcat启动乱码的解决办法:1、修改Tomcat的conf配置文件;2、修改系统语言;3、修改命令行窗口编码;4、检查Tomcat服务器配置;5、检查项目编码;6、检查日志文件;7、尝试其他解决方案。详细介绍:1、修改Tomcat的conf配置文件,打开Tomcat的conf目录,找到"logging.properties"文件等等。

解决Windows10中文乱码问题的方法 解决Windows10中文乱码问题的方法 Jan 16, 2024 pm 02:21 PM

在Windows10系统中,出现乱码现象可谓是司空见惯。这背后的原因往往在于该操作系统并未对部分字符集提供默认的支持,抑或是设定的字符集选项存在错误。为了对症下药,以下我们将为您详细解析实际的操作规程。windows10乱码怎么解决1、打开设置,找到“时间和语言”2、再找到“语言”3、找到“管理语言设置”4、点击这里的“更改系统区域设置”5、如图勾选上然后点击确定就可以了。

解决dll文件打开乱码问题的编辑方式 解决dll文件打开乱码问题的编辑方式 Jan 06, 2024 pm 07:53 PM

有很多的用户们在使用电脑的时候,会发现有很多的文件的尾缀是dll,但是很多的用户们都不知道这种文件需要怎么打开,想要知道的用户们快来看看以下详细教程吧~dll文件怎么打开编辑:1、下载一个叫做“exescope”的软件,并下载安装。2、然后右键dll文件,选择“用exescope编辑资源”。3、然后在弹出的错误提示框中,点击“确定”。4、然后在右边的面板上,点击每个组前面的“+”号可以查看到它所包含的内容。5、点击需要查看的dll文件,就能够看到了,然后点击“文件”,选择“导出”。6、然后就能够

解决win11记事本中的乱码问题 解决win11记事本中的乱码问题 Jan 05, 2024 pm 03:11 PM

有些朋友想要打开一个记事本,发现自己的win11记事本乱码,不知道怎么办,其实我们一般只需要修改区域和语言就可以了。win11记事本乱码:第一步,使用搜索功能,搜索并打开“控制面板”第二步,点击时钟和区域下的“更改日期、时间或数字格式”第三步,点击上方的“管理”选项卡。第四步,点击下方“更改系统区域设置”第五步,将当前系统区域设置改为“中文(简体,中国)”并“确定”保存即可。

解决win11部分软件乱码问题的方法以及详细解析 解决win11部分软件乱码问题的方法以及详细解析 Jan 30, 2024 pm 03:54 PM

很多的用户们在升级完win11系统后发现遇到了个人软件出现了乱码的情况,那么这件事情要怎么解决?下面就让小编来为用户们来仔细的介绍一下win11部分软件乱码问题解析吧。win11部分软件乱码问题解析1、点击左下角任务栏中的搜索框,输入控制面板打开。3、再点击其中的区域。5、然后将窗口中的beta版小方框取消勾选,最后将电脑重新启动即可解决问题。

PHP中文文件名乱码问题处理技巧 PHP中文文件名乱码问题处理技巧 Feb 27, 2024 pm 02:18 PM

PHP中文文件名乱码问题处理技巧在开发过程中,经常会遇到处理中文文件名乱码的问题,尤其是在处理用户上传的文件时。在PHP中,如何正确处理文件名乱码是一个比较常见且重要的问题。本文将介绍一些处理中文文件名乱码问题的技巧,并提供具体的代码示例,帮助读者更好地应对这个挑战。问题描述当用户上传文件时,有时候会出现中文文件名乱码的情况。这是因为不同的操作系统和浏览器对

解决win10字体文件夹名称显示乱码问题的方法 解决win10字体文件夹名称显示乱码问题的方法 Dec 30, 2023 am 11:47 AM

许多小伙伴在找到win10系统中字体文件夹的时候都发现文件夹的名称变成了乱码给操作带来了麻烦,那么该怎么解决呢?下面就一起来学习一下解决方法吧。win10字体文件夹名称乱码:1、点击左下角开始,选择windows系统打开“控制面板”。2、点击“时钟和区域”。3、选择“管理”点击“更改系统区域设置”。4、将“当前系统区域设置”改为“英语”,点击“确定”。5、再次打开“更改系统区域设置”,将语言设置回“中文”即可。还有其他问题的小伙伴可以看看了解更多有关win10字体常见的问题~

See all articles