关于PHP接收emoji转换存储问题?

在手机端输入emoji时遇到一个问题(无法储存进数据库)。

搜索问题后发现时数据库的utf8mb4原因(因为emoji是4字节,而utf-8得数据库是3字节)。

然后得到这么一个js函数可以将emoji表情转换为utf-8字符保存


function utf16toEntities(str) { //检测utf16emoji表情 转换为实体字符以供后台存储

         var patt=/[\ud800-\udbff][\udc00-\udfff]/g;

         str = str.replace(patt, function(char){

               var H, L, code;

               if (char.length===2) {   //辅助平面字符(我们需要做处理的一类)

                     H = char.charCodeAt(0); // 取出高位

                     L = char.charCodeAt(1); // 取出低位

                     code = (H - 0xD800) * 0x400 + 0x10000 + L - 0xDC00; // 转换算法

                     return "&#" + code + ";";

               } else {

                     return char;

               }

         });

         return str;

      }

问题就是我想把这个函数转成PHP函数,请问该怎么转啊?????


慕田峪9158850
浏览 573回答 2
2回答

慕哥6287543

你直接存的时候$value = json_encode($value)弄成json格式存不行吗。。。。只不过这样取出来的时候要json_decode()解析一下
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript