我尝试运行.read FILE具有 UTF-8 字符串的脚本 ( )。我使用 pragma 命令:
PRAGMA encoding="UTF-8";
Run Code Online (Sandbox Code Playgroud)
但我得到了错误的字符。如果我自己创建表并插入值,则一切正常。我应该怎么做才能正确运行脚本?
顺便说一句,我检查了很多关于stackoverflow和其他资源的问题/文章+阅读文档。我尝试了一些方法,例如chcp 65001在Windows中使用cmd然后sqlite3在当前窗口中打开。但它没有帮助。
该PRAGMA encoding设置不会改变您使用 SQLite API 的方式。并且无法更改现有数据库的编码。不要使用它。
在sqlite3.exe命令行shell不使用UTF-8字符的工作。(除非可能是最新版本。)不要使用它。
如果您自己的脚本和应用程序使用以 UTF-8 编码的字符串,并且如果您使用除 sqlite3.exe检查结果数据库之外的任何工具,那么它将起作用。
您需要做的就是:
打开cmd并更改编码( chcp 65001)
从当前窗口运行 sqlite3.exe
更改编码 ( PRAGMA encoding="UTF-8";)
创建正确的 UTF-8 脚本。