PHP 5.2.7是否支持utf8mb4

时间:2014-03-06 15:54:38

标签: php mysql mysql-5.5 utf8mb4

我有两台服务器分别运行以下版本的PHP和MySQL

服务器1:

PHP version 5.2.7
MySQL: 5.5.36

服务器2:

PHP version 5.4.23
MySQL: 5.5.36

随着MySQL版本的更新,MySQL可以处理 utf8mb4_general_ci

因此,对于服务器2 ,所有特殊字符(如',''等)都会在数据库中插入,而不会出现转义斜杠。

但是来到服务器1

的地方

特殊字符未按原样插入,它显示以下方式它而不是它

所以我怀疑PHP版本有所不同吗?

我在两台服务器上均使用Codeigniter配置。

1 个答案:

答案 0 :(得分:1)

对于标题中提到的问题,原生PHP字符串只是字节字符串,因此支持4字节UTF-8字符,其程度与支持UTF-8字符较少的字节相同。基于this manual page的一瞥,多字节字符识别的PHP函数似乎支持4字节字符。

正如评论中所指出的,你真正的问题是魔术引号是在一台服务器上而不是另一台服务器上。你应该把它关掉。如果你希望你的代码是可移植的,那么值得花时间编写能够应对魔法引号开启或关闭的代码。