SQLite和MySQL中使用Unicode代码点的SQL查询

时间:2015-04-14 12:46:58

标签: mysql sql sqlite unicode

在查询中使用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

1 个答案:

答案 0 :(得分:0)

(参考MySQL;我不了解SQLite。)

你真的有backslash u 0 0 f c吗?如果你要使用Unicode,你需要一直使用005A00FC的unhex。即Z将占用两个字节,ü将占用两个字节。我的观点是MySQL不会将Z\u00fc看作7 ascii字符以外的任何内容。 (如果将\视为转义,则可能为6。)

使用005A00FC

CHARACTER SET ucs2的十六进制。

如果您使用的是PHP 5.4+和JSON,则需要一个额外的参数:

$t = json_encode($s, JSON_UNESCAPED_UNICODE);