博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于java.net.URLEncoder.encode编码问题
阅读量:6201 次
发布时间:2019-06-21

本文共 872 字,大约阅读时间需要 2 分钟。

Q:java.net.URLEncoder.encode里的编码和什么有关的?

A:使用urlencoder编码会将中文变成你在浏览器地址栏看到的%XX形式,至于选择哪种enc编码跟你jvm的default charset有关,因为java项目一般用的都是UTF-8编码,为了防止你的中文以其他编码方式打开的时候乱码(如果这个时候乱码了,你在编码解码也是乱码),推荐整个项目使用同一编码解码,如果你的项目用的是GBK的,那么java.net.URLEncoder.encode("中文.zip","GBK")也是完全没问题的,但如果你用其他编码比如iso8859-1就会解出来乱码了

Q:至于选择哪种enc跟你jvm的default charset有关 默认是UTF-8? 和tomcat目录下的conf目录下的设置端口号那个标签里的URIEncoding="UTF-8"这个属性有关么?

A:有的,如果你用的是tomcat的话,因为你网络传输需要经过tomcat处理的,tomcat会将你的网络流编码转换成配置中的编码,如果两边不对应的话,有可能会出现乱码,但如果编码站位较长转为短码也不会乱码

Q:为什么我将URIEncoding改成GBK也没见它乱码呢?

A:那要看你的项目编码设置咯,你的项目是GBK的话,tomcat的传输编码会以你运行project为准,你可以改成iso的试试的嘛

 

 

在Web的浏览器中,不同的浏览器的编码和解码规则是不一样的.

   对于W3C浏览器:遵循W3C组织规范的浏览器,(非IE).

               编码:byte[] data = “任小龙”.getByte(String charsetName);

               解码:String  str = new String(data, String charsetName);

   对于IE浏览器:

              编码使用的application/x-www-form-urlencodedMIME机制.

转载于:https://www.cnblogs.com/JSD1207ZX/p/10264883.html

你可能感兴趣的文章
Hadoop管理员的十个最佳实践
查看>>
显卡等级
查看>>
linux和性能相关的命令及系统性能诊断
查看>>
PHP中Date获取时间不正确怎么办
查看>>
SFHA for windows下SQL启动问题
查看>>
编译安装LAMP-------动静分离
查看>>
virtualbox 安装debian后安装增强功能
查看>>
MySQL优化方向&思路
查看>>
大一统的Netfilter-一种Linux防火墙优化方法
查看>>
Linux用户,组及权限管理
查看>>
Cisco asa5510 防火墙限制局域网内每个IP的速度
查看>>
HibernateException: No Session found for current thread
查看>>
OpenStack云平台的网络模式及其工作机制
查看>>
突破LVS瓶颈,LVS Cluster部署(OSPF + LVS)
查看>>
Java技术驿站
查看>>
为什么SQL Server数据文件和日志文件最后更新日期不准?
查看>>
dell服务器虚拟化平台应用【我身边的戴尔企业级解决方案】
查看>>
Freemarker 的 Eclipse 插件 安装
查看>>
84天平美女征婚【非诚勿扰】
查看>>
深入浅出之-route命令实战使用指南
查看>>