[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fN-qLMTKvtxqfe4rhxl9hSPoz-X6O6KMQGaT5TufGdTk":3},{"code":4,"message":5,"data":6},200,"成功",{"id":7,"createdAt":8,"title":9,"content":10,"summary":11,"image":12,"uid":13,"user":14,"categoryId":21,"category":22,"subCategoryId":24,"subCategory":25,"comments":27,"status":17,"reason":12,"notice":12,"visitCount":28,"commentCount":29,"keywords":30},102,"2024-03-22T12:37:31.112Z","Mysql的报错：Error 1366 (HY000): Incorrect string value: '\\xF0\\x9F\\xA4\\xAD =...' for column 'content' at row 1","## 问题\n当往mysql数据库中插入emoj等表情数据时，有时候会出现以下的报错，这里简要跟大家分享一下我的解决方案。\n> Error 1366 (HY000): Incorrect string value: '\\xF0\\x9F\\xA4\\xAD =...' for column 'content' at row 1\n\n这里的`\\xF0\\x9F\\xA4\\xAD`其实指的是我传入的emoj表情符号。\n\n这个问题通常是因为数据库的列 `content` 没有被配置为接受 `UTF-8` 编码的字符集。因为utf8一般使用3个字节存储，但是utf8mb4采用4哥字节存储。那么解决这个方案，就需要更改字符集。\n解决这个错误的方法通常包括以下几个步骤。\n\n## 一、检查字符集和校对规则：\n确保数据库、表以及 `content` 列都使用了 `utf8mb4` 字符集。`utf8mb4` 字符集能够支持更多的 `Unicode` 字符，包括 emoji 表情符号。\n```mysql\nSHOW CREATE DATABASE your_database_name;  \nSHOW CREATE TABLE your_table_name;  \nSHOW FULL COLUMNS FROM your_table_name;\n```\n查看它们是不是utf8mb4，如果不是，那么就更改它们。\n\n## 二、修改数据库和表的字符集（任何修改请确保先在本地debug环境操作成功后再在生产环境进行修改，防止发生故障）：\n修改表的字符集:\n```mysql\nALTER DATABASE your_database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;  \nALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\n```\n\n## 三、修改列的字符集：\n检查列content 列的字符集不是 utf8mb4，你还需要修改它。\n\n```mysql\nALTER TABLE your_table_name MODIFY content TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\n```\nTEXT 为你列的实际数据类型。\n\n## 四、检查连接字符集：\n确保后台接口程序连接到数据库时，也使用了 utf8mb4 字符集。在连接字符串中可能需要指定字符集，如：\n\n```mysql\njdbc:mysql://your_host:your_port/your_database?useUnicode=true&characterEncoding=UTF-8&useSSL=false\n```\n\n或者在你的 MySQL 配置文件中设置：\n```mysqld\ncharacter-set-server=utf8mb4  \ncollation-server=utf8mb4_unicode_ci\n```\n\n和/或在 client 部分设置： \n```mysqld\ndefault-character-set=utf8mb4\n```\n\n## 五、重启数据库服务：\n有时候需要重启 MySQL 服务来确保所有的变更都生效。\n\n按照这些步骤操作后，就不会出现emoj字符集插入失败的情况了。其他情况，欢迎交流。\n","当往mysql数据库中插入emoj等表情数据时，有时候会出现这样的报错：Error 1366 (HY000): Incorrect string value: '\\xF0\\x9F\\xA4\\xAD =...' for column 'content' at row 1。这里简要跟大家分享一下我的解决方案。","",499668042977349,{"phone":15,"userId":13,"nickName":16,"vipType":17,"avatar":18,"sign":19,"createdAt":20},"13121171998","全栈老韩",1,"https://image.xinwei.ltd/images/IMG_5430.JPG","全栈工程师，擅长iOS App开发、前端（vue、react、nuxt、小程序&Taro）开发、Flutter、React Native、后端（midwayjs、golang、express、koa）开发、docker容器、seo优化等。","2024-01-01T16:14:30.305Z",2,{"id":21,"name":23},"IT技术",38,{"id":24,"name":26,"parentId":21},"数据库",[],802,0,"mysql,mysql emoji,mysql manual,mysql handle,mysql操作,mysql表情"]