sqlite3 .read命令不能使用unicode脚本

时间:2016-02-04 07:41:41

标签: sql cmd sqlite

我使用命令.read script.sql(我从https://www.sqlite.org/download.html下载的命令行工具sqlite3.exe)将数据导入现有数据库sqlite。 文件script.sql用notepad ++保存,编码 UTF8无BOM ,内容如下:

INSERT INTO "table1" VALUES('Các con cáo nâu nhanh chóng nhảy chó lười biếng');
INSERT INTO "table1" VALUES('速い茶色のキツネは、のろまなイヌに飛びかかっ');
INSERT INTO "table1" VALUES('빠른 갈색 여우가 게으른 개 점프');

但是在我运行命令之后,数据被转换为ansii,如下所示:

Các con cáo nâu nhanh chóng nhảy chó lÆ°á»i biếng
速ã„茶色ã®ã‚­ãƒ„ãƒã¯ã€ã®ã‚ã¾ãªã‚¤ãƒŒã«é£›ã³ã‹ã‹ã£
빠른 갈색 여우가 게으른 ê°œ ì í”„

有人知道如何解决问题吗?

1 个答案:

答案 0 :(得分:1)

根据源代码,这是sqlite3工具中的一个错误。在交互模式的Windows上,它无条件地将所有输入从ANSI转换为UTF-8,甚至从文件转换为。

要修复此问题,shell.c(合并版本3.11.1)的第488行可以更改为:

if( stdin_is_interactive && in == stdin){

刚检查过并修复了我的类似问题。