6

我被要求为由 PHP API 支持的 APP 启用表情符号支持。该APP目前只有iPhone(我没有,但我假设它上面有表情符号?)。

无论如何,我注意到数据库出于某种原因在任何地方都使用 latin_swedish。但由于我不确定 utf-8 是否可以支持完整 emoji 范围所需的 4 字节字符串,所以我开始使用谷歌搜索,但无法从结果中得到完整的答案。

所以:

  1. 要支持 Emoji,charset/collat​​ion 是否需要在 mysql 中设置为 utf-8 或 utf-8 mb4?

  2. 如果 charset 需要设置为 utf8mb4,那么 utf8 和 utf8mb4 有什么区别(utf8 最多支持 4 个字节,不是吗?)。它是否强制字符以固定宽度的 4 字节表示形式存储(假设即使在通常为 1 字节的标准 ascii 范围内,每个字符也需要 4 倍的存储空间)。

  3. 可以将 utf8 与 mysql 查询中的 utf8mb4 进行比较吗?如果我尝试对另一个表的 utf8 列进行全文搜索或 utf8mb4 字符集的 where 子句怎么办?

  4. PHP 是否支持 4 字节字符串而无需使用像 mb_string 这样的特殊库?即我可以分配$var = $_POST['text']并做类似的事情$emoji_var == 'xxxx'还是我必须从字面上更改PHP中的所有字符串以使用mbstring并更改所有比较器等

只是想弄清楚拥有表情符号支持涉及多少工作,以及这样做的任何注意事项。所以任何帮助都会很棒。

4

0 回答 0