坑边小记之特殊字符

JAVA坑之读取文件

1.发生情景

File file = new File("‪C:/test.txt");

‪C:/test.txt文件路径正确,但始终无法获得文件

2.原因

‪C:/test.txt含有特殊不可见字符: \u202a
windows下文件信息->安全标签->复制文件完整路径可能会复制该特殊字符

3.解决

手动输入字符串可避免输入特殊字符
或者排除这个特殊字符

String str ="‪C:/test.txt";
if(str.contains("\u202a")){
	str = str.replace("\u202a", "");
}

4.反思

这个问题花了2h左右排查原因
解决顺序
手动输入可以,复制粘贴就不行
表面看起来两个字符串一模一样,真是出了鬼了
通过获得string.getBytes获得bytes数组,查看发现粘贴时,多了3个btye:-30,-128,-86
首先想到的是utf-8 BOM,是不是黏贴时,复制了BOM?
查询资料,BOM 的byte数组为 -17,-69,-86不是
开始想到是特殊字符了
通过键盘光标复制特殊字符,在转换工具显示为 /u202a,搜索该字符查明原因顺利解决

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值