简洁版本:
可以使用哪种转义序列在命令行 mysql 中搜索 unicode 字符?
长版:
我正在寻找一种方法,从命令行在 mysql 中搜索包含 unicode 序列 U+200B 的记录的列。我不知道该使用哪种逃避方式。我已经尝试过并且x200B甚至我终于找到了一篇建议使用 _utf8 语法的博客。这将在命令行上生成字符:
select _utf8 x'200B';
现在我一直试图让它在“LIKE”查询中工作。
这会生成字符,但是当放置在 LIKE 部分时 % 似乎失去了它们的特殊含义:
select _utf8 x'0025200B0025';
我也尝试了 concat 但它也不起作用:
select concat('%', _utf8 x'200B', '%');
更多背景:
我有一些数据,其中包含零宽度空格字符(zwsp),Unicode Point U+200B。这通常是由在输出中使用 zwsp 的网站进行复制/粘贴引起的。对于大多数 unicode 字符,我只需将字符粘贴到终端中(或使用键码创建它),但由于这个字符是不可见的,因此更具挑战性。我可以创建一个生成“%%”序列的文件,并将其复制/粘贴到终端,它会工作,但它会让我的命令历史记录和终端输出变得混乱。我认为在 MySQL 中有一种简单的方法可以做到这一点,但到目前为止我还没有做到这一点。
提前致谢,
——保罗·伯尼
select _utf8 x'0025200B0025';
这不是 UTF-8,而是 UTF-16/UCS-2。你也许可以说SELECT _ucs2 0x0025200B0025
如果您的 MySQL 副本支持 UCS-2。
否则,UTF-8 中编码字符 U+200B 的字节序列将为 0xE2、0x80、0x8B:
select 0xE2808B;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)