修复sqlite编码

时间:2014-06-04 07:14:20

标签: sqlite encoding

我有一个data dump(90MB)在文本blob中使用了错误的编码(windows-1252)。如何将该数据库中的每个文本字段重新编码为utf-8 / sqlite期望的内容?

sqlite documentation只列出了一些编码,所有这些编码都是某种unicode。在sqlite数据库中存储windows-1252文本数据是不正确的。

1 个答案:

答案 0 :(得分:1)

SQLite希望所有字符串都是正确的Unicode,因此它没有任何编码转换函数。

要修复编码,请将整个数据库转储为文本,使用单独的工具进行转换,然后根据结果创建新数据库:

sqlite3 old.sqlite .dump | iconv -f windows-1252 -t utf-8 | sqlite3 new.sqlite

(仅当数据库中的所有文本实际上都在CP 1252中编码时才有效。)