取微信昵称存储到数据库的过程中 昵称无法保存的解决办法
代码层面解决 正常的 Base64 encode64 在遇到符号表情的时候无法正常 decode64 需要用 urlsafe_encode64
存储 nickname
def nickname_attr
self.nickname = Base64.urlsafe_encode64 hash["nickname"]
end
取 nickname
def real_nickname
if self.nickname.present?
self.nickname = Base64.urlsafe_decode64(nickname).force_encoding('UTF-8')
end
end
数据库层面修改
修改数据库编码 ALTER DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
修改表和字段编码 ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;