繁体   English   中英

SQLite3:非ASCII字符未正确更新?

[英]SQLite3: non-ascii characters not updated correctly?

我正在尝试在我的C程序上使用sqlite3_bind_text16()更新sqlite行上的特定文本列(WVARCHAR),但是不幸的是,只有包含ascii编码字符(如L"e"的字符串才能正确更新,而其他包含诸如L"é"类的Unicode字符已更新,其中非ASCII字符未正确存储。 这是我如何使用该函数的示例:

sqlite3_bind_text16(stmt, 1, L"e", -1, SQLITE_STATIC); //e is stored correctly
sqlite3_bind_text16(stmt, 2, L"é", -1, SQLITE_STATIC); //é not stored correctly: modified

我通过对程序的sqlite数据库文件使用sqlite shell执行select命令来进行测试。

那么如何解决呢?

在更新之前,向数据库发出以下PRAGMA

PRAGMA encoding = 'utf8';

这应该确保sqlite正确更新非ASCII字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM