mysql - 在不使用 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;
预期的结果是看到希腊数据进入表格,但实际上我们看到了?????。
解决方案
5.5 默认CHARACTER SET latin1
为任何表使用默认值。
8.0 的默认值为CHARACTER SET utf8mb4
.
要使 5.5 正常工作,请在表定义中指定字符集。对于希腊语,要么 要么utf8
将utf8mb4
工作。
请参阅“ UTF-8 字符问题”中的“问号” ;我看到的不是我存储的
注意:在 5.5 或 5.6 中,如果您索引的列是VARCHAR(255) CHARACTER SET utf8mb4
,则会出现错误。这可以通过多种方式解决。
见http://mysql.rjweb.org/doc.php/limits#767_limit_in_innodb_indexes
推荐阅读
- c# - 从 ruby on rails 附加/调用 DLL 文件
- linux - 为单个写入器和多个读取器方案同步对共享内存的访问的最佳方法是什么?
- c# - 在 ASP.NET Core 2.0 MVC 中重定向到主页/错误视图页面
- elasticsearch - 在logstash中使用grok模式解析我的json文件?
- awk - Bash 脚本 - AWK、SED 组合
- c# - 如何使用 epplus 修复缓慢的性能?
- multithreading - 使用 Geb+Spock+Gradle+groovy 实现 UI 自动化中的方法同步
- powershell - 如何在 PowerShell 中创建特定的用户日志文件?
- mongodb - 其他客户端对mongodb执行查询时,相同查询的结果不同
- batch-file - 使用 Windows 批处理文件时的特殊字符?