奇葩的ASCII 160 号空格

太奇怪了。打印出来的命名是空格,就是 trim() 不管用。第一次知道还有160号空格。

大家看代码吧

  1. System.out.println(StringEscapeUtils.unescapeHtml4(" ").equals(" "));
  2. System.out.println((int)StringEscapeUtils.unescapeHtml4(" ").charAt(0));
  3. System.out.println((int)' ');
 

输出:

  1. false
  2. 160
  3. 32
 
原来平时见到的都是32号空格啊!! 
 
web页面 在提交的时候到服务器的时候,java String trim 方法只能处理掉ASCII 32空格,我们需要用text.replaceAll(“[\\s\\u00A0]+$”, ”")来去掉空格。
 
ASCII码 0 打印出来也是空格.     
 
  就是160号空格呀。普通的32号空格在网页上会被作为连续空白压缩成一个的,要表示连续空格只能用这个。如果使用xhtml又没有定义  (&nbsp不是标准的xml实体),就要用  
 
详见:http://en.wikipedia.org/wiki/Character_entity_reference 





posted @ 2016-04-28 12:26  撕烤的攻城狮  阅读(1390)  评论(0编辑  收藏  举报