Yii2 支持微信昵称中的emoji表情

现在很多微信昵称中带有emoji表情,但是在做项目的时候遇到无法保存到数据库的问题。

解决这个问题需要从两方面入手:

1、Mysql 其实mysql里的utf8编码并不是真正的Utf8。因为Mysql的Utf8每个字符只支持三个字节,而真正的Utf8是每个字符四个字节。Mysql一直没有修复这个问题,而是新增了一种字符编码utf8mb4。所以mysql里面最好不要使用utf8编码,而是直接使用utf8mb4编码。

2、MySQL表和字段编码都修改后,在Yii2数据库链接配置文件里还要修改下编码模式为utf8mb4如下

return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=',
    'username' => '',
    'password' => '',
    'charset' => 'utf8mb4',
];

Mysql配置文件注释

# 以下选项会被MySQL客户端应用读取。
# 注意只有MySQL附带的客户端应用程序保证可以读取这段内容。
# 如果你想你自己的MySQL应用程序获取这些值。
# 需要在MySQL客户端库初始化的时候指定这些选项。

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It’s a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

# mysqld程序 继续阅读Mysql配置文件注释

windows下忘记mysql root账号密码,更新设置密码

1、首先检查mysql服务是否启动,若已启动则先将其停止服务,可在开始菜单的运行,用命令:net stop mysql

或者在windows任务管理器中结束mysqld.exe进程,或者在控制面板,管理工具里面的服务找到mysql,将其停止服务。

打开第一个cmd窗口,切换到mysql的bin目录,运行命令: mysqld –defaults-file=”C:\Program Files\MySQL\MySQL Server 5.1\my.ini” –console –skip-grant-tables

2、打开第二个cmd窗口,连接mysql: 输入命令: mysql -uroot -p

出现: Enter password: 在这里直接回车,不用输入密码。

然后就就会出现登录成功的信息。

使用命令: show databases; 继续阅读windows下忘记mysql root账号密码,更新设置密码