在查询中使用unicode代码点的正确方法是什么? (SQLite和MySQL):
sqlite> select name from city where name like '%rich';
Zürich
Zurich
我尝试使用代码点但到目前为止没有任何工作:
sqlite> select * from city where name like 'Z\u00fc%';
(empty)
任何人?感谢
编辑:我创建了这个sql小提琴,它也不起作用http://sqlfiddle.com/#!9/0faee/2
答案 0 :(得分:0)
(参考MySQL;我不了解SQLite。)
你真的有backslash u 0 0 f c
吗?如果你要使用Unicode,你需要一直使用005A00FC
的unhex。即Z
将占用两个字节,ü
将占用两个字节。我的观点是MySQL不会将Z\u00fc
看作7 ascii字符以外的任何内容。 (如果将\
视为转义,则可能为6。)
005A00FC
时 Zü
是CHARACTER SET ucs2
的十六进制。
如果您使用的是PHP 5.4+和JSON,则需要一个额外的参数:
$t = json_encode($s, JSON_UNESCAPED_UNICODE);