【问题标题】:utf8mb4 characters lost in export/import in Sequel Pro在 Sequel Pro 的导出/导入中丢失 utf8mb4 字符
【发布时间】:2017-08-26 01:18:10
【问题描述】:

我正在对我的 MySQL 数据库中的表和字段使用编码 UTF-8 Unicode (utf8mb4) 和排序规则 utf8mb4_unicode_520_ci

当我从 Sequel Pro 导出数据库并在文本编辑器中打开导出的 .sql 文件时,我的测试字符 ???? 正确显示,但是当我将文件重新导入 Sequel Pro 时,它在 Sequel 中都显示为 ???? Pro 和我的 PHP/MySQL 应用程序中。

在导入窗口中,我尝试了AutodetectUnicode (UTF-8),但均未成功。有什么想法吗?

另外,有没有我应该使用的新编码 () 以及使用 utf8mb4_unicode_520_ci 而不仅仅是 utf8mb4_unicode_ci 有什么好处吗?

编辑/这是我正在尝试做的图片。在我尝试将 .sql 文件重新导入 Sequel PRO 之前,我的“奇怪”角色似乎一直在走上正轨。

【问题讨论】:

    标签: mysql utf8mb4 sequelpro


    【解决方案1】:

    COLLATION 无关紧要,除了订购。 CHARACTER SET 确实很重要,因为这是一个 4 字节的代码。

    不知何故CHARACTER SET utf8 参与其中,不管你怎么说。可能的原因请参见Trouble with utf8 characters; what I see is not what I stored 中的“问号”。

    执行SELECT HEX(...) ... 以验证该字符实际上存储为十六进制F09D8C86

    提供SHOW CREATE TABLE,以便我们验证是utf8mb4。

    还有,让我们看看连接参数。

    【讨论】:

    • 谢谢瑞克!在我将其从 Sequel PRO 导出之前,我检查了十六进制返回 F09D8C86,但是当我再次导入它时,它返回 3F3F3F3F (?????)。 SHOW CREATE TABLE 在导出前和导入后返回 utf8mb4。我错过了 Sequel PRO 中的任何设置吗?
    • 字符集设置呢?需要SET NAMES utf8mb4(或等效项)来宣布客户端具有 4 字节 UTF-8 字符。
    • 你知道我在 Sequel PRO 中是怎么做到的吗?一切都在我的 php/mysql Web 应用程序和 Sequel PRO 中运行......直到我在 S PRO 中进行备份/导出并再次导入它。我明白了????
    • 在我的链接中查看“最佳实践”中的各种项目。我不知道Sequel PRO。我是您的图像,在导入期间我看不到任何关于 连接 的信息。
    • 发现Sequel PRO 还不能导出utf8mb4,但是在v1.2 就可以了!
    猜你喜欢
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 2022-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多