rails mysql 支持emoji存储

339 阅读1分钟

rails 项目中

MySQL utf8编码只能存放3字节的字符,但是emoji表情虽然是utf8编码,每个字符需要占用4个字节,可以设置编码为utf8mb4,这个字符集是utf8的超集

对于rails项目 在database.yml 按照下面这样设置就可以了

default: &default
  adapter: mysql2
  encoding: utf8mb4
  collation: utf8mb4_general_ci
  host: localhost
  port: 3306
  username: root
  password: '123456'

使用mysql语句修改

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATR = utf8mb4_unicode_ci;
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE table_name CHANGE column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;