奇葩的ASCII 160 号空格

处理特殊空格字符
本文探讨了HTML中 特殊空格字符在Java中的处理方式。文章指出该字符对应的ASCII码为160,并非常规的空格字符ASCII码32。针对此问题,文中提供了使用replaceAll方法去除该特殊空格的具体实现。

太奇怪了。打印出来的命名是空格,就是 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 





转载于:https://www.cnblogs.com/yangf2016/p/5442177.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值