如何在PHP中更改PDO / SQLite连接的字符编码?

时间:2008-11-04 19:23:02

标签: php sqlite pdo

我的php-gtk应用程序遇到了一些问题,它一直运行到非utf8字符串,我发现问题出在数据库连接中,即使数据库应该是UTF-8。

我曾尝试使用“SET CHARACTER SET utf8”(MySQL方式)和“SET NAMES UTF8”,但没有任何反应(“Query Language Understood by SQLite ”页面中没有任何关于此命令的信息或者,所以我对此并不感到惊讶。)

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

1 个答案:

答案 0 :(得分:9)

据我所知,SQLite only has one setting for charset,这是基于每个数据库的级别。您无法更改连接上的编码。

C API有two different ways打开连接,可以是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