现象
前端输入客户编码,传到后台进行查询,有时候因为复制的原因,编码带有空格
后端拿到数据后,进行trim, 失效
public Response findByEmployee(@BeanRequestParam String str) {
String customerCode = StringUtil.trim(str);
....
}
原因
Java的 trim 只对 英文半角的空格有效,如果是中文全角空格,或者不可见字符,trim 无法达到预期
解决方法
使用 StringUtil.trimInvisible(String str)
public Response findByEmployee(@BeanRequestParam String str) {
String customerCode = StringUtil.trimInvisible(str);
....
}
trimInvisible
过滤不可见字符字符(也叫控制字符)
ASCⅡ 0-31和127
处理首尾的不可见字符