欢迎来到 54818模板网!这是一个yzmcms的模板分享站。

四字节汉字不能写入mysql数据库

相关案例演示



        如上图所示,有些特殊的汉字没有办法保存到mysql数据库里,就比如这个土字旁的劳,因为这些汉字是四个字节的。而mysql的utf8编码只能保存3个字节。硬要保存就会出错。于是我仔细百度了一下。原来是mysql本身的设计就有缺陷。还好mysql推出了一个解决方案,就是用utf8mb4编码。


        具体步骤1:首先更改mysql连接语句,从utf8到utf8mb4

如果数据连接用的是PDO,那就打开 /yzmphp/core/class/db_pdo.class.php
找到47行,把utf8改为utf8mb4

self::$link -> exec("SET names utf8mb4, sql_mode=''");


        具体步骤2:其次我们要修改数据库的字符编码及字段的排序方法,在这里我只是需要用到 article表 的 content字段,所以我就单独修改这个字段的编码及排序方法。

#用后台SQL命令行就行。

ALTER TABLE `article` MODIFY COLUMN `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;


        完成上面两个步骤后就可以正常显示出4字节汉字了。这两个步骤缺一不可。如果没做步骤1,根本就没办法保存数据到MYSQL数据库里。那没做步骤2的话,虽然可以把数据保存进去,但是,已经保存好的四字节汉字就会显示成问号,不会正确显示出来。

    作者:54818模板网 关注:1061 时间:2022-07-11 11:02:39
    相关网站教程