在PHP源代码中使用原始表情符号是否安全?

时间:2018-04-11 13:16:01

标签: php emoji

示例:

$fire = '';

我知道PHP 5+原生支持这个功能,但它是最佳实践还是我应该使用他们的代码点来存储它们,如果是这样,为什么?

1 个答案:

答案 0 :(得分:0)

就你的编辑器和PHP编译器而言,它只是文本,''与'fire'或'Φωτιά'没有区别。

当PHP运行时,它将从文件中读取字节并将它们放入内存中,而不关心它们的含义。这导致了您可能遇到的最大问题:如果您将文件保存在文本编辑器中为UTF-16,然后将字符串回显给浏览器,告诉它是UTF-8,浏览器将无法显示事情。但是通过确保编辑器始终使用UTF-8可以轻松避免这种情况,并且输出标题会告诉浏览器您正在使用的是什么。

如果你不相信你的编辑器这样做,并且你正在运行PHP7,你可以用转义符号"\u{1f525}"来编写它,但是当它运行时,相同的字节将最终在内存中。

如果您将文本发送到其他地方(例如,数据库),您可能会遇到类似问题,而其他地方也不知道将其作为UTF-8处理。但是,如何在源文件中编写字符串不会对此产生任何影响,这只是确保所有内容都配置为匹配的情况。

注意:你实际上不必使用UTF-8,你可以使用UTF-16或其他一些编码,只要你是一致的;但UTF-8是迄今为止最常见的,特别是在网络上。