1

我的问题是我的 API 服务器无法存储可以在 iOS 客户端上显示的字符。角色是1F49Dhttp://shapecatcher.com/unicode/info/128157)。

服务器端:

  • 红宝石 1.9.3-p327
  • 带有 mysql2 的 activerecord 3.2
  • MySQL 服务器:5.5.28

供参考:

  1. 以前我们的 iOS 客户端使用 parse.com 作为持久性服务。现在,我们转移到我们拥有的 API 服务器(在 ruby​​ 中实现)。
  2. 当我尝试使用irb. Ruby 1.9 可以阅读和理解这个字符。
  3. 这是包含字符的文本。https://gist.github.com/jacobdam/6220339/raw/1562815fe37df04293d3cee7d216e920415de715/gistfile1.txt
  4. 我将架构、表、列排序规则更改为utf8and utf16。但它不起作用。

任何人都可以给我一个建议,如何将这个文本保存到/从 mysql 中?

4

1 回答 1

2

先决条件:MySQL >= 5.5.3

名为 utf8(或 utf8mb3)的字符集每个字符最多使用三个字节,并且仅包含 BMP 字符。为了每个字符最多有四个字节,您需要:

  1. 将所有表/列的字符集/排序规则切换为utf8mb4
  2. 编辑您的 config/database.yml 以将encoding: utf8行更改为encoding: utf8mb4

(以及最近的 mysql2 gem?)

于 2013-08-14T20:07:13.837 回答