如何在Sqlite3中引用UTF-8字符串文字

Sea*_*den 6 sqlite unicode utf-8

我正在寻找在Sqlite数据库中编码和存储Unicode.有没有办法在SQL查询中对UTF-8(unicode)字符串文字进行原始编码.

我正在寻找类似于java的东西,我可以将\ u00E9折腾成一个字符串并让它自动上转换为Unicode.

msw*_*msw 9

你用的是哪种语言?SQLite处理Unicode很好,在托管语言中创建文字不太明显.

$ sqlite3 junk.sqlite
SQLite version 3.6.22
sqlite> create table names (id integer primary key, name string);
sqlite> insert into names values (null, 
    'î? yõù g?? ?????? UTF-8, it stores it');
sqlite> select * from names;
1|î? yõù g?? ?????? UTF-8, it stores it
Run Code Online (Sandbox Code Playgroud)

  • 好的测试字符串. (6认同)

dan*_*n04 6

SQLite没有转义序列.但是你的编程语言可能会这样.

# in Python
db.execute("INSERT INTO MyTable(MyColumn) VALUES('\u00E9')")
Run Code Online (Sandbox Code Playgroud)

要么

db.execute("INSERT INTO MyTable(MyColumn) VALUES(?)", ['\u00E9'])
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因你必须在纯SQL中编写UTF-8文字,你可以这样做:

sqlite> SELECT CAST(X'C3A9' AS TEXT);
é
Run Code Online (Sandbox Code Playgroud)

编辑:由于最初编写了这个答案,因此在SQLite中添加了一个CHAR函数.所以现在,你可以写

INSERT INTO MyTable(MyColumn) VALUES(CHAR(233))
Run Code Online (Sandbox Code Playgroud)