mysql唯一键比较时去掉右侧空格

起因:修改表字符集由utf8到utf8mb4,提示 Duplicate entry '9000180525007 ' for key 'code'。

原因:末尾有一个特殊空格(no-break space = non-breaking space)。特殊空格对应的Unicode码是\u0026\u0023\u0031\u0036\u0030\u003b。而普通空格对应的Unicode码是\u0020

字符集为utf8和utf8mb4的唯一键比较都会去掉右侧空格,但utf8不会去掉特殊空格。

 

过滤特殊空格:

Pattern p = compile("\\p{Zs}");
Matcher m = p.matcher("9000180525007 ");
System.out.println(m.replaceAll(""));

参考:https://www.regular-expressions.info/unicode.html

posted on 2019-05-21 17:09  zujun  阅读(329)  评论(0)    收藏  举报