阅读 97

中文路径乱码问题,URLDecoder.decode的坑

中文路径乱码问题
看网上的解决方案,大多是

path = java.net.URLDecoder.decode(path, "utf-8");

无效
改为"gbk" 无效
无效原因:
分析方法实现是对%xx 格式的东西做转码 ,我的url是编译器gbk读文件utf-8的乱码不是这种的,所以他没给处理
使用这个方法前记得确认url是不是%xx的形式,还是单纯的乱码,%在url中是有特殊含义的,需要做转义
这个方法处理URL的乱码,实际上做了%的转义
可以考虑用自己转编码(仅提供思路),但实际上处理编译器编码或者直接改文件编码能解决大多数问题

new String(path.getBytes(),"utf-8"); 
new String(path.getBytes("GBK"),"utf-8");

乱码原因:
文件是utf-8编码
编译项目 用gbk编译的
编码不匹配
给编译器加上-encoding utf-8
成功得到正确路径

更坑的一点是我就那两个文件时utf-8的编码,其他文件是GBK编码
导致了新的乱码
所以把编译器加上的-encoding utf-8去掉,把两个文件的编码改成GBK结束问题

IDEA查看修改文件编码的地方

原文:https://www.cnblogs.com/zmz980126/p/14894819.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐