最近遇到个问题,在页面的搜索框输入带有空格的字符串时,总是无法从db中搜索出来对应的数据,于是将db里的空格复制出来,发现其ASCII码值为160,这才知道,原来ASCII码中除了32之外还有160这个特殊的空格。下边是查看字符对应ASCII值的逻辑:

final char c1 = ' '; //db里的空格
final char c2 = ' '; //手动输入的空格
System.out.println((int)c1); //160
System.out.println((int)c2); //32

平时我们用键盘输入的空格的ASCII值是32,而这个ASCII值为160的空格,其实是不间断空格(non-breaking space),是不是从来没听说过这东东?其实你平时一定也用过很多次的,就是页面上的 所产生的空格。

不间断空格non-breaking space的缩写正是nbsp。这中空格的作用就是在页面换行时不被打断,如下:

页面某一行的末尾是一个人名Zhang Xiaoming

我们希望在换行时人名不会被打断,导致Zhang 在第一行末尾,而Xiaoming跑到第二行开头,而是保持完整的人名在同一行的末尾,于是就有了不间断空格。(在word中也有这种空格的使用)

如果使用了平常的空格,就会被页面压缩,变成下边这样

页面某一行的末尾是一个人名Zhang
Xiaoming

问题
但是不间断空格有个问题,就是它无法被trim()所裁剪,也无法被正则表达式的\s所匹配,也无法被StringUtils的isBlank()所识别,也就是说,无法像裁剪寻常空格那样移除这个不间断空格。

我们可以利用不间断空格的Unicode编码来移除它,其编码为\u00A0

解决办法如下:

replace("\u00A0", "")
replaceAll("\\u00A0+", "")  //这是正则表达式的写法String str = "aacsdfe ";  //包含了不间断空格的字符串
str = str.replace("\u00A0", "");
str = str.replaceAll("\\u00A0+", "");

特殊的空格-ASCII码值160相关推荐

  1. 【js】不间断空格 特殊的空格-ASCII码值160

    键盘输入的空格的ASCII值是32, 而不间断空格(non-breaking space)是ASCII值为160的空格,就是页面上的 所产生的空格. 不间断空格的Unicode编码为\u00A0. 其 ...

  2. 前端特殊空格ASCII码为160,转为32的空格

    项目背景: 用div自定义的输入框,富文本含有标签样式. 问题: 空格输入,在后台保存后,出现乱码,解析不了 解决: 在前端中,有个特殊的空格,就是页面中 在ascii中为160,平时的输入空格为32 ...

  3. 转义序列字符(\0,\n,\r,\t,\v,\a,\f,\b,\\,\‘,\“,\?)详解,转义字符对应的全称,输出结果和对应的ASCII码值详解;

    文章目录 前言 转义序列字符(Escape Sequence Character): 一.\0:空字符 二.\n:换行符 三.\r:回车符 四.\t:水平制表符 五.\v:垂直制表符 六.\a:响铃 ...

  4. 回车、换行、空格的ASCII码值—(附ASCII码表)

    回车.换行.空格的ASCII码值 回车,ASCII码13 换行,ASCII码10 空格,ASCII码32 Return   =   CR   =   13   =   '\x0d' NewLine   ...

  5. c 中空格的asc码表_回车、换行、空格的ASCII码值—(附ASCII码表)

    回车.换行.空格的ASCII码值 回车,ASCII码13 换行,ASCII码10 空格,ASCII码32 Return   =   CR   =   13   =   '\x0d' NewLine   ...

  6. 回车、换行、空格的ASCII码值(不同OS平台下文件换行定义)

    回车.换行.空格的ASCII码值(不同OS平台下文件换行定义) 回车,ASCII码13(十六进制:0x0D),"\r" 换行,ASCII码10(十六进制:0x0A),"\ ...

  7. 回车、换行、空格的ASCII码值

    http://blog.csdn.net/songjinshi/article/details/7868866 回车.换行.空格的ASCII码值 回车,ASCII码13 换行,ASCII码10 空格, ...

  8. c语言中字符如何转数字排序,常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字。对..,(c语言)输入三个字符后,按各字符的ASCII码从小到大的顺...

    导航:网站首页 > 常用字符的ASCII码值从小到大的排列规律是:空格.阿拉伯数字.对..,(c语言)输入三个字符后,按各字符的ASCII码从小到大的顺 常用字符的ASCII码值从小到大的排列规 ...

  9. 排坑·ASCII码为160的空格(nbsp)

    阅文时长 | 2.83分钟 字数统计 | 1345.2字符 『排坑·ASCII码为160的空格(nbsp)』 编写人 | SCscHero 编写时间 | Wednesday, September 9, ...

  10. 汉字的ascii码值范围_ASCII代码

    同学们,我们都知道计算机只能接受二进制信息,很显然直接给出英文的ABCD计算机并不认识,那为何敲击键盘屏幕就可以显示出对应的字符呢? 为了解决这个问题,计算机采用一套编码,每个编码都是唯一的,对应键盘 ...

最新文章

  1. IE6中PNG图片背景无法透明显示的最佳解决方案
  2. linux编程基础_第1篇 Linux系统编程 -多线程基础
  3. Delphi V7.0企业汉化版及注册码
  4. 牛客 - 树上求和(贪心+树形dp)
  5. Fiddle:使用断点:bpu,bpafter
  6. go linux 源码编译环境,修改并编译golang源码
  7. 前缀(波兰表达式) 中缀 后缀(逆波兰表达式)
  8. 帮助你生成分享和显示社交媒体网络按钮的jQuery插件 - #50C1AL
  9. utc时间 单位换算_OSAL之时钟分析
  10. Symbian s40 Java编程实战(一)--开发环境配置
  11. pci-e串口卡linux 驱动下载,PCI/PCIe串口卡并口卡驱动
  12. php 支付宝用户信息授权,支付宝登录获取用户信息授权
  13. 吴军《态度》读后感(1):人生哲学
  14. android 获取以太网的动态IP地址,子网掩码,DNS地址,网关地址
  15. Hive SQLException: Method not supported问题
  16. 计算机毕业设计Java超市货品进销存系统后台(源码+系统+mysql数据库+lw文档)
  17. canvas实现动态点线背景,鼠标画点连线。
  18. Python声音处理入门
  19. 十个你可能不知道的CloudFlare免费CDN加速技巧
  20. cmd 命令行执行 Python 脚本

热门文章

  1. wap2app是什么
  2. python如何确定拐点_如何在嘈杂的曲线中找到拐点?
  3. ECSHOP商城SEO优化商城更新内容后将页面链接自动推送给百度
  4. 基于ABBYY SDK 实现java版本 Hello 功能!
  5. 泛微协同商务系统_泛微ecology OA Beanshell组件远程代码执行漏洞复现
  6. geotoolkit 测井曲线显示时间、深度双刻度
  7. fedora安装字体
  8. 百度文库文档下载操作流程
  9. 华为手机图标怎么变小_华为手机怎么设置图标由大变小
  10. wechat微信模板消息推送demo