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(""));
浙公网安备 33010602011771号