代码中出现一个类似空格的东西---不间断空格

今天在写业务的过程中遇到了一个问题,这个问题百度的很久找不到原因,后来所幸遇到了一个解释,才豁然开朗。

具体的原因就是前端读取Excel内容后,将json数据传递到后端,在验证数据库是否具有相同名称的时候,明明都是这个字符串,为什么会不一样?仔细检查后发现,前端传过来的这个json字段似乎包含了半个空格???

"你好 "

就是类似上面这个字符串,但是那个空格要比上面字符串中的空格小一半左右。使用trim无效,使用replace无效,瞬间崩溃,我靠,java的API不管用了???

马上使用一个字符串验证,明明API没有问题,但是遇到这半个空格的就不管用了?

进过不懈努力,终于知道这个鬼东西叫:不换行空格,也叫不间断空格

维基百科的解释:https://en.wikipedia.org/wiki/Non-breaking_space

ASCLL码为:\u00A0,十进制为160,UTF8码为 0xA0

既然知道是什么了就好办了,这种格式的代码在正常的业务中肯定是会影响我们的业务的,甚至让业务无法正常工作,除非你有特殊需求。

那么最终处理这个问题的方式就是:

str.replace("\u00A0", "");

  今天算是踩到这个坑了,也花费了一点时间来解决。

posted @ 2019-04-19 21:27  异次元代码  阅读(1226)  评论(0编辑  收藏  举报