我有两台服务器分别运行以下版本的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配置。
答案 0 :(得分:1)
对于标题中提到的问题,原生PHP字符串只是字节字符串,因此支持4字节UTF-8字符,其程度与支持UTF-8字符较少的字节相同。基于this manual page的一瞥,多字节字符识别的PHP函数似乎支持4字节字符。
正如评论中所指出的,你真正的问题是魔术引号是在一台服务器上而不是另一台服务器上。你应该把它关掉。如果你希望你的代码是可移植的,那么值得花时间编写能够应对魔法引号开启或关闭的代码。