提交表单后Charset错误,也没有正确插入mysql db

时间:2014-03-15 16:50:04

标签: php mysql forms character-encoding

1 个答案:

答案 0 :(得分:0)

可能很少有其他事情影响这一点,因为设置整理通常是不够的:

  • 默认情况下,您的连接未使用UTF-8。请在连接到MySQL之后添加它(在进行任何插入之前):

    query("SET NAMES utf8");  
    

    现在检查你的数据,如果新行是正确的,那么只需在mysql连接功能之后添加它。

  • 您的数据未在服务器中存储为UTF-8。要检查此信息,请运行以下查询:

    show variables like 'char%';
    

    这应该仅返回utf8(文件系统通常为binary除外)。如果没有,那么您的MySQL服务器没有完全配置为支持UTF-8。

<强>更新

要将MySQL服务器设置为完全支持UTF-8,请编辑my.cnf文件(通常在/etc/mysql中)并添加以下内容:

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

更改后,重启MySQL服务器,连接MySQL并执行这些操作(将数据库更改为数据库名称):

use database;
set character_set_database=utf8;
set character_set_server=utf8;