MENU

数据库迁移时的编码问题

• January 18, 2017 • Read: 29033 • 日常

为了支持 Emoji, 博客数据库使用了 utf8mb4 的编码,本来一直相安无事,没想到后来迁移主机的时候被坑的不惨。

原因是导出 SQL 的时候,某些低版本的应用(说的就是 PHPMyAdmin)可能在导出的时候会不支持 utf8mb4,所以导出的 SQL 文件声明的数据库编码方式是 utf8,再进行导入的时候,数据库自然就按照 utf8 的编码方式导入,导致 Emoji 表情都变成了 ?

😂

解决起来非常简单啊:

打开 SQL 文件,搜索:

  • /*!40101 SET NAMES

然后找到:

  • /*!40101 SET NAMES utf8 */;

如果以上面 那样,那再导入的时候就是以 utf8 作为编码了。所以我们要把这里的 utf8 改成 utf8mb4,然后就搞定了。

当然,最终的编码还是根据你的实际情况看,但是仍然建议在导入之前先检查一遍编码方式,以免不必要的呵呵发生。

Last Modified: February 4, 2017
Archives QR Code Tip
QR Code for this page
Tipping QR Code
Leave a Comment

17 Comments
  1. 你好,我可以在您的文章的基础上进行二次修改并发布到我个人的博客上吗?

    1. @Yiveco 可以的,注明出处即可。

    2. @Hran 十分感谢您能够同意

  2. 不舒服,改完了还是一个小问号。(ง ᵒ̌皿ᵒ̌)ง⁼³₌₃

    1. @metheno 那你之前存的时候就没存 utf8mb4 吧

  3. 以前也遇到过一样的问题 折腾了好久 @(喷)

  4. Key Key

    😂想问下。这个评论是和这套主题一起的吗?评论的表情除 emoji 以外那些表情也是 4 个字节的吗?

  5. utf8mb4 是兼容 utf8 吗,ghost 博客安装时是 utf8,想搞搞 emoji@(滑稽)

    1. @yufan 兼容,ghost 应该也可以这么搞
      话说,你就不要再换主题了,Ghost 那个也算是我最喜欢的一个主题了

    2. @Hran 不想搞了 @(不高兴) 没有 phpmyadmin,自己改,怕搞炸了
      \#(高兴) 不会换主题了,我也蛮喜欢的,大佬常来啊

    3. @yufan 大佬常来啊 @(滑稽)