其他分享
首页 > 其他分享> > 中文路径乱码问题,URLDecoder.decode的坑

中文路径乱码问题,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查看修改文件编码的地方

标签:decode,utf,编码,乱码,编译器,文件,path,URLDecoder
来源: https://www.cnblogs.com/zmz980126/p/14894819.html