当使用地址栏提交查询参数时,如果不编码,非英文字符会按照操作系统的字符集进行编码提交到服务器,服务器会按照配置的字符集进行解码,所以如果两者不一致就会导致乱码。

encodeURI函数采用UTF-8对URL

进行编码,所以如果服务器在进行解码时使用的是其他的编码方式就会出现乱码,默认的服务器配置的解码字符集都不是UTF-8,所以大部分情况下地址栏提交

中文查询参数时会产生乱码;针对这种情况,可以连续使用两次encodeURI在客户端(主要指浏览器)对非英文字符进行编码,然后在服务端使用

java.net.URLDecoder(String."UTF-8")解码,即可得到正确的中文。

原理:

如果只进行一次encodeURI,得到的是UTF-8形式的URL,服务器端通过request.getParameter()解码查询参数(通常是iso-8859-1)就会得到乱码。

如果进行两次encodeURI,第一次编码得到的是UTF-8形式的URL,第二次

编码得到的依然是UTF-8形式的URL,但是在效果上相当于首先进行了一次UTF-8编码(此时已经全部转换为ASCII字符),再进行了一次iso-

8859-1编码,因为对英文字符来说UTF-8编码和ISO-8859-1编码的效果相同。在服务器端,首先通过

request.getParameter()自动进行第一次解码(可能是gb2312,gbk,utf-8,iso-8859-1等字符集,对结果无影

响)得到ascii字符,然后再使用UTF-8进行第二次解码,通常使用java.net.URLDecoder("","UTF-8")方法。

两次编码两次解码的过程为:

UTF-8编码->UTF-8(iso-8859-1)编码->iso-8859-1解码->UTF-8解码,编码和解码的过程是对称的,所以不会出现乱码。

java url转urf8_UrlEncode编码/UrlDecode解码使用方法相关推荐

  1. java urlencode 解码_UrlEncode编码/UrlDecode解码使用方法

    UrlEncode编码主要用于将字符串以URL编码,返回一个字符串: 使用方法: 1.ASP中的用法:Server.URLEncode("内容")         例如: 2.PH ...

  2. JAVA Io 流 字符流 编码表 编码和解码的方法

    字节流,用中文可能会出现乱码 计算机中存储的信息都是二进制表示的 按照某种规则将字符编程二进制 再存储到计算机中,成为编码 按照同样规则,在计算机中二进制数解析出来,成为解码 编码和解码的方式必须一致 ...

  3. php url编码原理,urlencode编码/urldecode解码作用及使用方法

    urlencode和urldecode释义 urlencode是一个函数,可将字符串以URL编码,用于编码处理. URL编码(URL encoding),也称作百分号编码(Percent-encodi ...

  4. js和java中URI的编码和解码

    js中对文字进行编码主要有三个函数:escape,encodeURI,encodeURIComponent: 对应解码为:unescape,decodeURI,decodeURIComponent 这 ...

  5. ESB UrlEncode编码/UrlDecode解码

    #[java.net.URLEncoder.encode(张三','UTF-8')] #[java.net.URLDecode.decode('%E5%BC%A0%E4%B8%89','UTF-8') ...

  6. UrlEncode编码/UrlDecode解码 - 站长工具

    http://tool.chinaz.com/tools/urlencode.aspx

  7. 【python学习】基础篇-编码与解码 decode()方法 将对象元素打包成元组zip()函数

    i=1 menu=["B超室","化验室"] user="张来,黎明,常冒,赵薇,吉舜锋,辛叶,冲余力,余人明,傅山,岳宁琳,昌紫衫,笆莎莉" ...

  8. java url转义_url特殊字符转义及解决方法

    URL特殊字符需转义 1.空格换成加号(+) 2.正斜杠(/)分隔目录和子目录 3.问号(?)分隔URL和查询 4.百分号(%)制定特殊字符 5.#号指定书签 6.&号分隔参数 转义字符的原因 ...

  9. java emoji 编码_Java对Emoji表情编码与解码

    Java对Emoji表情编码与解码,使用到Java Emoji Converter . GitHub地址:https://github.com/binarywang/java-emoji-conver ...

最新文章

  1. 华为机试第10题python
  2. UOJ#370. 【UR #17】滑稽树上滑稽果 动态规划
  3. Selenium3自动化测试——16. 处理HTML5视频播放
  4. 协程的三种同步方式Channel、Mutex、WaitGroup
  5. .NET Core 微信公众号小程序6种获取UnionID方法,你知道哪几种?
  6. php 其他页面获取session_PHP五十个提升执行效率的小技巧,和常见问题
  7. HCIE-RS面试--MAC地址漂移及应对
  8. LanguageTool精简的两个思路
  9. 使用联想恢复盘安装正版Win7 Professional
  10. 数学家刘徽李善兰陈景润华罗庚
  11. 卸载mysql server_windows中彻底卸载mysql
  12. EXCEL中实现经纬度距离计算、高斯坐标转换、GIS数据导出等功能
  13. 合批/批量渲染 (Batch)、实例化Instancing
  14. linux几个工具的安装
  15. 保边滤波之Mean shift filter
  16. 零基础学习3d建模需要多久?
  17. 数学家是如何做量化交易的
  18. 如何查看笔记本电脑固态硬盘接口与接口协议
  19. 中科院博士论文致谢走红:求学22载,计算机终成一生的事业
  20. E. Stupid Submissions(思维)

热门文章

  1. 【JavaScript】js可以直接使用的鼠标经过切换图片
  2. 运行java -jar xxxx.jar 报ConfigServletWebServerApplicationContext : Exception encountered during contex
  3. 浅谈Win10装机磁盘格式问题:windows无法安装到这个磁盘 选中的磁盘采用GPT分区形式
  4. 电脑崩溃蓝屏问题如何重装系统
  5. 计算机音乐夜里,电脑自动开机播放音乐叫你起床,并晚上自动关机
  6. Topaz ReMask 5抠图神器,让抠图变得so easy
  7. 【极客时间】HTTP 专栏课-罗剑锋
  8. 速领,程序员专属红包封面~
  9. 人行信号灯配时——步行管理(交通运行管理)
  10. 战网买台湾服务器物品,「戏里戏外」这东西都能卖钱?暴雪推废服务器礼盒 售价上5000...