我有一个标签分隔文件,其中包含以下记录:
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编码=“UTF-8”; ,但它没有帮助。有什么想法吗?
根据以下用户CL的请求进行更新
输入文件的一部分的Hexdump(与上面显示的部分相同,其中一些附加数值与此处无关;在ASCII列中,损坏的字符在“j”之后的“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|
违规记录的选择十六进制(名称)的结果:
hex(name)
--------------------------------------
31323030303030303030303032303733323430
答案 0 :(得分:0)
这与导入无关;使用sqlite3
时,.width
命令行工具不会正确截断字符串。