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

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. linux跨主机复制文件
  2. 追番必备,动漫角色也可以用人脸识别了
  3. 简单的一道题 背包问题
  4. EC20模组使用MQTT库对接EMQX,基于STM32F407
  5. liunx常用命令0
  6. 不积小流,何以成江海。。。积累
  7. 【QCustomPlot】1.1 - Qt .qch帮助文档导入使用
  8. vb 开机到现在的时间
  9. ES6之let与const
  10. 修改spring Boot启动时的默认图案Banner
  11. Dropthings - Ajax Web Portal
  12. DBC2000有什么作用?DBC2000的安装与配置
  13. 我的世界网易版java材质包下载_我的世界超强光影SMUS网易专版
  14. dell r230u盘启动安装2008_利用U盘安装win2008r2系统的步骤
  15. 组装电脑超详细步骤(超多图+用了2个小时写的)
  16. SMTP 简单邮件传输协议
  17. 衡量现金分红收益率的指标——股息率
  18. 从微信封杀拼多多链接浅谈我是如何解决微信屏蔽封杀外部以及广告链接的
  19. python快递分拣_快递背后的黑科技,你造吗?
  20. css3实现好看的边框效果

热门文章

  1. 仿QQ侧滑和酷狗侧滑效果
  2. Erlang工作环境搭建
  3. 利用教育优惠获取1个T的Onedrive同步盘
  4. 西门子PLC S7-1200硬件故障ERROR灯常亮处理一例---附“未决的启动禁止项 重置为出厂设置”方法
  5. 系统分析师论文 -结束语参考
  6. 大学计算机与基础课程ppt,浅析大学计算机基础课程分层教学策略|大学计算机基础ppt...
  7. 国家信息化体系内容与具体要素是什么?
  8. 有趣一点的java源代码_十个有趣的程序员作品推荐
  9. Qt网络与通信HTTPS(在线翻译工具)
  10. 【数据结构】设计循环队列