不使用PHP将希腊字符插入MySQL表列

时间:2019-05-29 16:45:38

标签: mysql character-encoding

我们有一个如下的MySQL表:

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

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

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

此外,我也尝试过更改字符集,但无济于事。

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

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

SELECT * FROM TEST;

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

1 个答案:

答案 0 :(得分:0)

对于任何使用默认值的表,

5.5默认值为CHARACTER SET latin1

8.0的默认值为CHARACTER SET utf8mb4

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

请参见Trouble with UTF-8 characters; what I see is not what I stored中的“问号”

注意:在5.5或5.6中,如果索引VARCHAR(255) CHARACTER SET utf8mb4的列,则会收到错误消息。可以通过几种方法解决此问题。

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