Sqlite3 在导入后损坏了一些字符

Sqlite3 corrupts some chars after importing

我有一个制表符分隔的文件,其中包含如下记录:

no      Newcastle       1       NULL    NULL    NULL
uk      Ньюкасл 1       NULL    NULL    NULL
ja      ニューカッスル  1       NULL    NULL    NULL

要将它们导入 sqlite,我使用:

create table cities (country text, name text, count integer...);
.separator '    '
.import file cities

(其中“ ”上面包含一个制表符)。该文件似乎可以正常导入,但一些非 ASCII 字符已损坏,尤其是在字符串末尾,并被问号替换。

no           Newcastle         1                NULL         NULL          NULL      
uk           Ньюкасл    1                NULL         NULL          NULL      
ja           ニューカッ?  1                NULL         NULL          NULL   

损坏发生在导入时。我尝试在导入前使用 PRAGMA encoding = "UTF-8";,但没有帮助。有什么想法吗?

根据以下用户 CL 的请求进行更新

输入文件的一部分的 Hexdump(与上面显示的相同部分,带有一些与此处无关的附加数值;在 ASCII 列中,损坏的字符位于 "ja" 之后的“1”之前):

00008180  30 30 30 30 30 30 32 30  37 33 32 33 39 09 31 34  |0000002073239.14|
00008190  38 36 33 39 36 31 33 34  35 33 33 33 36 35 38 38  |8639613453336588|
000081a0  09 75 6b 09 d0 9d d1 8c  d1 8e d0 ba d0 b0 d1 81  |.uk.............|
000081b0  d0 bb 09 31 09 4e 55 4c  4c 09 4e 55 4c 4c 09 4e  |...1.NULL.NULL.N|
000081c0  55 4c 4c 0a 31 32 30 30  30 30 30 30 30 30 30 30  |ULL.120000000000|
000081d0  32 30 37 33 32 34 30 09  31 34 38 36 33 39 36 31  |2073240.14863961|
000081e0  33 34 35 33 33 33 36 35  38 38 09 6a 61 09 e3 83  |3453336588.ja...|
000081f0  8b e3 83 a5 e3 83 bc e3  82 ab e3 83 83 e3 82 b9  |................|
00008200  e3 83 ab 09 31 09 4e 55  4c 4c 09 4e 55 4c 4c 09  |....1.NULL.NULL.|
00008210  4e 55 4c 4c 0a 31 32 30  30 30 30 30 30 30 30 30  |NULL.12000000000|
00008220  30 32 30 37 33 32 34 31  09 31 34 38 36 33 39 36  |02073241.1486396|

违规记录的 select 十六进制(名称)结果:

hex(name)                  
--------------------------------------
31323030303030303030303032303733323430

这与导入无关;使用 .width.

时,sqlite3 命令行工具无法正确截断字符串