故障排查之字符串-找出隐藏的真凶

最近的一起生产故障中产品经理反映自己添加的超链接不能生效。链接内容如下:

您好!XX客服系统很高兴为您服务!欢迎进入<a href="https://discount.csdn.com/">打折专区</a>购买商品!

没有发现异常,于是就甩锅给前端同学,前端同学排查后发现的确不能正确解析链接,经常尝试发现,a和href之间的空格不正常,删除后用键盘输入空格,便可以正常解析链接。于是,锅还是甩回到我这里,我就推断应该是存在特殊字符导致链接失效,将链接内容拷贝到Notepad++中,选中"视图-显示符号-显示所有符号",显示如下:

a和href之间存在特殊字符

将a和href之间的内容删除,用键盘输入空格后,显示如下:

a和href之间的内容是空格

细心的同学会发现此时a和href之间出现一个红点,代表a和href之间是空格(ASCII码为32),a和href之间必须是ASCII码为32的空格才能将对应的内容解析为超链接

现在已经确定a和href之间的内容不是键盘输入的空格了,到底是什么特殊字符呢。

把这个特殊字符拷贝到IDE中测试:

char c = ' ';
System.out.println((int) c);

结果输出160,表示该字符对应的Unicode码(java中char对应的是Unicode码,占用两个字节)为\u00A0(十六进制,对应的十进制为160),其实该字符对应的是Html中的空格:

&nbsp;

温馨提示:

以后遇到解析失败的文本,应先在Notepad++(视图-显示符号-显示所有符号)上查看,若发现特殊字符,则通过编程工具计算其对应的Unicode码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值