当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何在PHP中更改PDO/SQLite连接的字符编码?》经验,为你挑选了1个好方法。

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

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

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



1> troelskn..:

据我所知,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


我发现"SQLite并不特别关注它收到的文本,并且非常乐意处理未规范化的文本字符串,甚至是格式良好的UTF-8.想要存储IS08859数据的程序员可以做......"Soo该文本原创于ISO85(某事)
在这种情况下,您在检索数据时必须使用utf8_decode.如果您在内部使用PHP的默认字符集(ISO-8859-1),则只需要这一切.考虑在整个系统中使用UTF-8,在这种情况下,您不必编码任何东西(是的,它令人困惑).
推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有