无法通过utf8编码在mysql数据库中插入中文(警告1336字符串值不正确)

无法通过utf8编码在mysql数据库中插入中文(警告1336字符串值不正确),mysql,encoding,utf-8,character-encoding,Mysql,Encoding,Utf 8,Character Encoding,我无法在表格中插入中文。我已经将字符集和排序规则配置为utf8和utf8\u general\u ci。数据库和表创建为utf8 此外,我还尝试将字符集设置为utf8mb4,并将排序规则设置为utf8_unicode_ci、utf8mb4_general_ci、utf8mb4_unicode_ci。它们都指向相同的错误:警告1366字符串值不正确 Big5和GBK编码在本例中起作用,但我想使用utf8,因为简体中文和繁体中文可以插入 mysql中的一些代码: my.ini中的配置: 使用Mysq

我无法在表格中插入中文。我已经将字符集和排序规则配置为utf8和utf8\u general\u ci。数据库和表创建为utf8

此外,我还尝试将字符集设置为utf8mb4,并将排序规则设置为utf8_unicode_ci、utf8mb4_general_ci、utf8mb4_unicode_ci。它们都指向相同的错误:警告1366字符串值不正确

Big5和GBK编码在本例中起作用,但我想使用utf8,因为简体中文和繁体中文可以插入

mysql中的一些代码:

my.ini中的配置:


使用Mysql 5.6.8版本

字符集utf8mb4排序utf8mb4\u常规\u ci将此排序设置在三个位置:

1-在操作或设置选项卡下的数据库排序中,您可以找到排序下拉框,从中选择“utf8mb4\u general\u ci

2-再次在“操作”选项卡下的表中,您需要从下拉列表中更改相同“utf8mb4\u general\u ci”的排序规则值

3-现在不要忘记更改保存数据的列的排序规则单击表的“结构”选项卡编辑需要保存中文数据的列,并将每个列的排序规则更改为相同:“utf8mb4\u general\u ci


尝试直接从phpmyadmin中放置汉字,如果您可以成功插入汉字,这意味着您已经完成了对数据库的操作,请尝试使用服务器或从您的网站。如果wesbite不起作用,那么您可能需要在网站脚本中添加utf 8元标记。

我怀疑MySQL已正确配置为使用utf-8,但您的应用程序未正确配置。我已仔细查看了类似问题,但在这种情况下仍然无法解决。你能找出你对配置的怀疑吗?我会用一个比喻。你想在伦敦一家餐馆付账,然后告诉服务员:“给你一张100欧元的钞票。”。但他拒绝了:“对不起,我们只能接受英镑。”。所以你递给他同样的100欧元钞票,并说:“那么,这是一张100英镑的钞票。”在上面的配置中,你可以看到客户端(我插入数据的平台:cmd)被设置为utf8,还有数据库。当两种语言都配置为同一种语言时,我怎么仍然无法插入中文?对不起,我没有正确地解释我自己。如果您将MySQL配置为采用UTF-8,则必须向其提供UTF-8。如果您的应用程序正在使用任何其他编码(例如,
Big5
),您必须声明您正在使用其他编码,以便MySQL库有机会来回转换数据。仅仅说“使用UTF-8”并不是解决所有编码问题的灵丹妙药。我确信你的服务器端设置很好。
    create database db1 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

    create table table1 (
    lastName varchar(255),
    firstName varchar(255)
    ) ENGINE = MYISAM CHARSET=utf8 COLLATE utf8_general_ci;

    INSERT INTO table1 VALUES ('陳','小文');

  Warning | 1366 | Incorrect string value: '\xB3\xAF' for column 'lastName' at r
w 1       |
 Warning | 1366 | Incorrect string value: '\xA4p\xA4\xE5' for column 'firstName
 at row 1 |
[client]
default-character-set=utf8
[mysqld]
default-storage-engine=MyISAM
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server=utf8
skip-character-set-client-handshake=1
[mysql]
default-character-set=utf8