9

我有一个 php-gtk 应用程序一直运行到非 utf8 字符串的小问题,我发现问题出在数据库连接中,即使数据库应该是 UTF-8 也是如此。

我曾尝试使用“SET CHARACTER SET utf8”(MySQL 方式)和“SET NAMES UTF8”,但没有任何反应(在“ SQLite 理解的查询语言 ”页面中也没有关于这些命令的任何信息,所以我对此并不感到惊讶)。

PD:也许连接已经是 UTF-8 而数据不是,但如果有办法改变连接编码,这个问题仍然有用。

4

1 回答 1

10

据我所知,SQLite 只有一个 charset 设置,它位于每个数据库级别。您无法更改连接上的编码。

C API 有两种不同的打开连接的方式,UTF-8 或 UTF-16。我希望 PHP 的 SQLite 模块(以及 PDO)简单地使用 UTF-8 版本。如果这是正确的,我希望 SQLite 连接始终是 UTF-8。这意味着您应该使用utf8_encode / utf8_decode手动编码/解码字符串。

另见:http://www.alberton.info/dbms_charset_settings_explained.html

于 2008-11-04T20:07:26.293 回答