首页 > 解决方案 > 在不使用 PHP 的情况下将希腊字符插入 MySQL 表列

问题描述

我们有一个如下的 MySQL 表:

CREATE TABLE Test
(
ID INT(11),
Value VARCHAR(100)
);

我想使用 INSERT 查询并将希腊数据加载到 Value 列中。我想重申,我不希望任何 PHP 或任何第三方供应商工具的参与。

我已经尝试过如下 INSERT 查询。查询被执行。当您对我们看到的表执行 SELECT 时????? 标记而不是数据。

此外,我也尝试过更改字符集,但没有帮助。

注意:这个问题似乎出现在 MySQL 5.5 版中,而在 v8.0 中我们看到的是希腊数据

INSERT INTO TEST VALUES (1,'ΜΑΣΟΥΤΗΣ Δ. Α.Ε');

SELECT * FROM TEST;

预期的结果是看到希腊数据进入表格,但实际上我们看到了?????。

标签: mysqlcharacter-encoding

解决方案


5.5 默认CHARACTER SET latin1为任何表使用默认值。

8.0 的默认值为CHARACTER SET utf8mb4.

要使 5.5 正常工作,请在表定义中指定字符集。对于希腊语,要么 要么utf8utf8mb4工作。

请参阅“ UTF-8 字符问题”中的“问号” ;我看到的不是我存储的

注意:在 5.5 或 5.6 中,如果您索引的列是VARCHAR(255) CHARACTER SET utf8mb4,则会出现错误。这可以通过多种方式解决。

http://mysql.rjweb.org/doc.php/limits#767_limit_in_innodb_indexes


推荐阅读