gpt4 book ai didi

sqlite - 检查 SQlite 中文本的编码

转载 作者:IT王子 更新时间:2023-10-29 06:20:05 31 4
gpt4 key购买 nike

我在处理 SQlite 中的非 Eurpean 文本时遇到了噩梦。我认为问题是 SQlite 没有对 UTF8 中的文本进行编码。所以我想检查编码是什么,并希望将其更改为utf8。我用 UTF8 编码了一个 CSV,然后简单地将它导入到 SQlite,但非罗马文本是乱码。

我想知道:1)如何检查编码。2)如果不是utf8,如何更改编码。我一直在阅读 Pragma 编码,但我不确定如何使用它。

我使用 OpenOffice 3 创建了一个包含一半英语和一半日语文本的电子表格。接下来,我使用 utf8 将文件保存为 CSV。这部分似乎还可以。我还尝试使用 Google Docs 进行操作,效果很好。接下来我打开 SQlite 浏览器并进行 CSV 导入。英文文本显示完美,但日文文本是乱码。我认为 sqlite 使用的是不同的编码(也许是 utf16?)。

最佳答案

您可以使用此编译指示测试编码:

PRAGMA encoding; 

无法更改现有数据库的编码。要创建具有特定编码的新数据库,请打开一个到空白文件的 SQLite 连接,运行此 pragma:

PRAGMA encoding = "UTF-8"; 

然后创建您的数据库

如果您有一个数据库并且需要不同的编码,那么您需要使用新编码创建一个新数据库,然后重新创建架构并导入所有数据。

但是,如果您遇到乱码问题,那几乎总是所用工具之一的问题,而不是 SQLite 本身的问题。即使 SQLite 使用不同的编码,唯一的最终结果是它会导致一些额外的计算,因为 SQLite 不断地从存储的编码转换为 API 请求的编码。如果您使用的不是 C 级 API,那么您永远不应该关心编码——您正在使用的工具所使用的 API 将决定应该使用什么编码。

许多 SQLite 工具都显示了将文本插入我们的 SQLite 之外的问题,包括命令行 shell。尝试从命令行运行 SQLite 并告诉它导入文件本身而不是通过 SQLite 浏览器。

关于sqlite - 检查 SQlite 中文本的编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4532532/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com