1、RLO ( Code "\u202E" ; HTML ‮ ) :开始从右到左的文字; 2、LRO ( Code "\u202D" ; HTML ‭ ) :开始从左到右的文字; 3、PDF ( Code "\u202C" ; HTML ‬ ) :结束上一次定义。 (另外还有四个相关的控制字符 RLE 、 LRE 、RLM 、LRM 暂时不举例……)
注:mysql数据库编码方式为utf8
1.问题现象:
在执行:select LENGTH("13****69461")时,长度为17

2.问题分析
在http://tool.chinaz.com/tools/unicode.aspx 转成unicode编码时发现两边多了一个 \u202d \u202c

或者把字符串copy到idea中会自动显示出隐藏字符的unicode,如:
String aa="\u202D137****69461\u202C";
3.解决办法
1).可以在java代码中直接替换:
aa=aa.replace("\u202D","").replace("\u202C","");
注:如果文字直接从excle是copy保存到数据库,很容易出现此问题
本文探讨了在MySQL数据库中使用UTF8编码时遇到的问题:由于特殊Unicode字符(如RLO、LRO、PDF等)的存在,使得字符串的实际长度与预期不符。文章详细分析了这些特殊字符如何影响字符串长度,并提供了解决方案。
2

被折叠的 条评论
为什么被折叠?



