Sergey Tselovalnikov 从 Guava 里一个看起来过度复杂的 isWhitespace 方法出发,追到 Unicode 的 White_Space 属性:它列了 25 个字符,各有用途,FIGURE SPACE 和数字同宽,THIN SPACE 与 HAIR SPACE 更窄,NO-BREAK SPACE 防换行。麻烦在于定义并不统一——Java 的 Character.isWhitespace 就明确排除 NO-BREAK SPACE 等三个不换行空格,名字叫 ZERO WIDTH SPACE 的字符反而不是空白,OGHAM SPACE MARK 在带主干线的字体里会渲染成一条可见横线。