首页 > Web开发 > 详细

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

时间:2021-06-17 20:18:20      阅读:48      评论:0      收藏:0      [点我收藏+]

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

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查看修改文件编码的地方

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!