特殊空格的坑,原来空格可以有好多种

先提供解决方案:str.replaceAll("[\\u00A0]+", "");

将特殊的空格替换成空。

踩坑过程:

            为什么日期格式化会失败,日期如下:2020-03-16 00:20:45.0 ,各种debug测试,各种格式尝试,都不行。还以为是日期时间后面带点零导致的格式识别不了,测试了还是不行。因为这个日期是其他系统接口反馈回来的字符串形式,所以怀疑这个字符串有问题,就自己手输了一遍日期,成功排除格式化的参数"yyyy-MM-dd HH:mm:ss"的问题,说明我的格式化方式肯定是对的,那么问题就是他传过来的日期字符串上了。看日期字符串,除了r日期中间空格不确定是否有问题外,其他字符感觉都是正常的。那么我就把空格拿出来判断下是否有问题,怎么判断?复制出来放到转码工具上如base64,ASCII码,Unicode等,自己敲的半角空格和复制出来的空格转码出来的结果是不一样的。。。自己的敲的空格base64为IA==,报文里的空格base64后为wqA=,由此确定肯定是这个空格捣的鬼,报文中空格转换ASCII码\u00a0,自己敲的转换ASCII码为\u0020,由此问题最终确定。网上一查,原来显示空格有好多种:

1.不间断空格\u00A0,主要用在office中,让一个单词在结尾处不会换行显示,快捷键ctrl+shift+space ;

2.半角空格(英文符号)\u0020,代码中常用的;

3.全角空格(中文符号)\u3000,中文文章中使用;

在此推荐一款在线工具:支持json格式化、各种转码等

http://www.bejson.com/

你可能感兴趣的:(日常踩坑,日期格式化)