[短文]不同空白字符导致程序执行失败问题

屏幕显示的一个空白字符,对于编程者来说,并无差异,但底层截然不同的表示方法,极大可能导致程序执行失败!

今天博主就遇到一个空格字符的问题,大概情况是前端编写SQL传入,后端有时可以执行,有时无法执行,经过复现和测试,最终发现问题并解决。具体过程不表,我们做一个测试,来探究不同字符对程序的影响。

调用接口
这是使用PostMan调用接口时传入的一个参数,可以看见,虽然显示的是空白字符,但编辑器已经智能提示了这两种空白字符是有区别的,我们把它复制到IDEA打印输出查看。
IDEA查看

虽然将代码复制到IDEA后,编辑器也会区别显示,但从输出结果来看,肉眼完全无法分辨。也就导致,从日志来看,SQL代码和后端接受的参数没有问题,但程序无法执行的问题。
异常问题

解决办法: NBSP的Ascii码是160,我们可以依照这个特性,将它替换为常规空格。
str1.replaceAll(String.valueOf((char) 160)," ");

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值