我被要求为PHP API支持的APP启用表情符号支持。 APP目前仅限iPhone(我没有,但我假设它上面有表情符号?)。
无论如何,我注意到数据库出于某种原因在任何地方都使用了latin_swedish。但由于我不确定utf-8是否可以支持完整表情符号范围所需的4字节字符串,所以我开始使用Google搜索,但无法从结果中得到完整答案。
所以:
要支持表情符号,请将字符集/校对的需要设置为mysql中的utf-8,或utf-8 mb4?
如果charset需要设置为utf8mb4,utf8和utf8mb4之间有什么区别(utf8最多支持4个字节不管怎么样?)。它是否强制字符以固定宽度存储在4字节表示中(假设每个聊天存储空间需要4倍甚至标准ascii范围,通常为1字节)。
在mysql查询中可以将utf8与utf8mb4进行比较吗?如果我尝试对另一个表的utf8列进行全文搜索或utf8mb4字符集的where子句会怎么样?
PHP是否支持4byte字符串而不必使用像mb_string这样的特殊库?即我可以只分配$var = $_POST['text']
并执行$emoji_var == 'xxxx'
之类的操作,或者我必须逐字地更改PHP中的所有字符串以使用mbstring并更改所有比较器e.c.t。
只是想弄清楚在表情符号支持方面需要做多少工作,以及这样做的任何警告。所以任何帮助都会很棒。