我们有一个如下的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;
预期结果是将希腊数据输入表格,但实际上我们看到了?????。
答案 0 :(得分:0)
5.5默认值为CHARACTER SET latin1
。
8.0的默认值为CHARACTER SET utf8mb4
。
要使5.5正常工作,请在表定义上指定字符集。对于希腊语,utf8
或utf8mb4
都可以。
请参见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