Rails 关于 MySQL 的 utf8mb4 插入某些表情字符的时候就报错了

hxh1246996371 · August 28, 2016 · Last by hxh1246996371 replied at August 28, 2016 · 2454 hits

事情是这样的,最近尝试往数据库插入某些表情字符的时候就报错了,类似 (Mysql2::Error: Incorrect string value: '\xF0\x9F\x91\x93'。然后查找资料后发现是 utf8 编码的问题,于是乎我就将数据库、以及相关表和字段的编码从 utf8 改成了 utf8mb4,但是发现仍然插入报错,不知道如何解决这个问题,想请教一下各位

database.yml 配置也要改 encoding: utf8mb4

只有手动改出错的那几个表为 utf8。 以后建表的时候多加一句,create_table :xxx, option: 'charset=utf8' do |t| ,大概这样。。是 options 还是 option 记不清了。

#1 楼 @numbcoder 都改了,但是还是不行,好奇怪

不好意思 好像可以了,刚刚忘了重启 mysql 服务

不用重启呀,直接通过 mysql cli 执行一行语句就可以了

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

#5 楼 @lgn21st 我这边试了,好像真的是需要重启 mysql 服务呢

huacnlee closed this topic. 29 Aug 09:59
You need to Sign in before reply, if you don't have an account, please Sign up first.