candy 发表于 2018-12-15 11:30:42

PHP转换emoji表情为HTML字符实体

  移动端输入时允许输入表情,表情实际上是UTF-16编码,在数据库存储上会存在丢失,当前如果把数据库字码编码修改为 utf8mb4 也是可以保存。
  

  如果不想修改其它则可以通过转换把这些表情符转换为HTML字符实体保存。
  代码如下:

  

function utf16_to_entities(){
    $content = mb_convert_encoding($content, 'utf-16');
    $bin = bin2hex($content);
    $arr = str_split($bin, 4);
    $l = count($arr);
    $str = '';
    for ($n = 0; $n < $l; $n++) {
      if (isset($arr[$n + 1]) && ('0x' . $arr[$n] >= 0xd800 && '0x' . $arr[$n] = 0xdc00 && '0x' . $arr[$n + 1]
页: [1]
查看完整版本: PHP转换emoji表情为HTML字符实体