当我从网页中复制一个Emoji字符到Mysql的交互界面中,它会自动被转为字符串字面值,如下所示:
当我将其复制到终端界面中时,就没有转化,原样显式,如下所示:
我想问同样的一个操作系统,为什么在Mysql交互界面中就被自动转化为\U+1F600,而在普通终端界面中就不会转化? 难道这个转化是由Mysql客户端程序完成的吗?
深入mysql字符集设置
- MySQL Server收到请求时将请求数据从character_set_client转换为character_set_connection;
- 进行内部操作前将请求数据从character_set_connection转换为内部操作字符集,其确定方法如下:
• 使用每个数据字段的CHARACTER SET设定值;
• 若上述值不存在,则使用对应数据表的DEFAULT CHARACTER SET设定值(MySQL扩展,非SQL标准);
• 若上述值不存在,则使用对应数据库的DEFAULT CHARACTER SET设定值;
• 若上述值不存在,则使用character_set_server设定值。- 将操作结果从内部操作字符集转换为character_set_results。
这里有一篇文章:mysql utf8mb4与emoji表情