替换空格过程中,常会出现空格replace没有效果,打印出来是”?”,如果修改下编辑器的编码,可能就会解决该问题,但就会导致该类与整个项目的编码格式不同,服务器部署时就会出现编译乱码问题;
在eclipse中打开16进制值显示,可以看到我们要替换的空格,它的16进制值为\u00A0 的含义实际上是指不间断的空格,实际上我们常用的空格应该的转义序列应该是”\u0020”。
所以这样特殊的空格应这样替换:
name = name.replace("\u00A0", "");
下附转义序列字符表:
字符串值是一个由零或多个 Unicode 字符(字母、数字和其他字符)组成的序列。 字符串括在成对的单引号或双引号内。 括在单引号内的字符串可包含双引号。 括在双号内的字符串中可包含单引号。 字符串中的每个字符均可由一个转义序列表示。 转义序列以反斜杠 () 开头,可以使用 \uhhhh 转义序列指定 Unicode 字符,其中 hhhh 是四位十六进制数。 Unicode 转义序列可以表示任何 16 位字符。