前言
有时候前端传过来的 json 字符串,包含了隐藏的空格 &NBSP 字符,在后端 Debug 的时候可以看到是   ,但 system.out.print() 打印出来的是正常的空格,这样看着正常但其实放入 fastjson 中去做解析会失败,所以我们需要移除这些空格。
方法
初步代码如下:
String str=word.replaceAll("\\s+", ""); //无效方法
使用上面的语句,我们执行完发现无效,因为前端的特殊空格需要用 unicode 码来替换才行,经过查询 对应的 unicode 码是 \u00A0
详细参考:
Unicode Character 'NO-BREAK SPACE' (U+00A0)
最终改进后的代码如下:
String str=word.replaceAll("\\s+|\\u00A0+", ""); //有效方法