【发布时间】:2019-05-29 16:45:37
【问题描述】:
我们有一个如下的 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;
预期的结果是看到希腊数据进入表格,但实际上我们看到了?????。
【问题讨论】:
-
我们如何在 MySQL 5.5 版中看到相同的行为
-
Workbench 直接应该已经支持希腊和 UTF-8 字符。 In this 5.7 demo没问题。
-
这是字符集和排序规则的问题。您可能需要
utf8mb4_general_ci排序规则。SHOW CREATE TABLE Test;将揭示这一点。您的Value列的排序规则是什么?您正在使用某种 mysql 客户端软件,即使它是命令行客户端。你是这样运行的吗?mysql --default-character-set=utf8mb4?请edit您的问题提供这些重要细节。