【发布时间】:2014-02-21 18:29:38
【问题描述】:
我最近将我的 MariaDB 数据库从 Latin1 切换到了 UTF-8。阅读一堆清单并仔细更新了我的字符集、排序规则、my.cnf 和 php.ini。我在网站上的大部分数据输入都有 php 表单,但有时为了快速进行小改动,进入像 Adminer 或 phpmyadmin 这样的程序会更容易。
有了 UTF-8,我想将导演 Alfonso Cuaron 的名字改为 Cuarón。我去了他在Adminer的条目。编辑。 Cuar[alt+0243]n。它在编辑框中显示为 Cuarón。但是当我保存更改时,Adminer 将其显示为 Cuarón。好的。在 Firefox 中查看页面信息。说页面的字符编码是UTF-8。所以一切都应该很好,对吧?
我去了我的一个 php 数据输入表单并创建了一个 Bob Cuarón。它显示得很好。 我通过 SSH 连接到服务器,启动了一个 mysql 命令行并使用 Cuarón 运行了一个更新 sql 行。那行得通。但试图在 Adminer 中更改它仍然不断给我 Cuarón。我安装了 phpmyadmin(这给我的 nginx 配置带来了一些问题),但我能够编辑他的名字,然后......叹息......它也给了我 Cuarón。我安装了 SQLbuddy 并且...成功...我能够进行更改,但该程序缺少一些我需要的东西,例如编辑搜索结果的能力。
我确定我已经确定了一切:
nginx.conf:
charset UTF-8;
我的.cnf:
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
/etc/php5/fpm/php.ini
mbstring.language = Neutral
mbstring.internal_encoding = UTF-8
mbstring.encoding_translation = On
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.detect_order = auto
mbstring.substitute_character = none
default_charset = UTF-8
显示像“%character_set%”这样的变量;
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
我看不出我可能会错过什么。 Adminer 和 phpmyadmin 都处理 UTF-8,所以我不知道为什么它不起作用。它与 SQLBuddy 开箱即用,但正如我所说,它缺少一些功能。
我有什么想法吗?
【问题讨论】:
标签: mysql utf-8 nginx phpmyadmin mariadb