|  |      1voocel      2017-11-29 13:46:55 +08:00  1 ``` /* 对 emoji 进行转义 */ function emoji2str($str){ $strEncode = ''; $length = mb_strlen($str,'utf-8'); for ($i=0; $i < $length; $i++) { $_tmpStr = mb_substr($str,$i,1,'utf-8'); if(strlen($_tmpStr) >= 4){ $strEncode .= '[[EMOJI:'.rawurlencode($_tmpStr); }else{ $strEncode .= $_tmpStr; } } return $strEncode; } /* 读数据后重新转换成 emoji 返回 */ function str2emoji($str){ $str_arr = explode("[[EMOJI:", $str); $new_str = ""; foreach ($str_arr as $key => $val){ $new_str .= $val; } return $new_str; } ``` | 
|      2tomoya92      2017-11-29 13:49:02 +08:00  1 utf8mb4 是可以的,你估计编码还是没有处理好  | 
|  |      3sun019      2017-11-29 13:51:21 +08:00 utf8mb4  可以 现在系统上就是用的这个 | 
|  |      4SourceMan      2017-11-29 14:23:55 +08:00 utf8mb4 直接可以存呀。 | 
|      5edison111cry      2017-11-29 14:25:23 +08:00  1 我之前也遇到过 MYSQL 存储不了四字节的,设置了半天也不行,然后存的时候直接 base64_encode 一下存进去,取出来显示的时候 base64_decode 一下再显示 | 
|  |      6RangerWolf OP | 
|  |      7RangerWolf OP @voocel 感谢, 只不过我这个是存爬虫, 不涉及前端 我参考你的代码来改造一下。 再次感谢! | 
|  |      8RangerWolf OP @edison111cry  也是个办法 赞! | 
|  |      9RangerWolf OP @liygheart 我的环境跟你一样的。 能分享一下你是如何设置的么? 多谢! | 
|  |      10SourceMan      2017-11-29 14:50:51 +08:00 | 
|  |      11abcbuzhiming      2017-11-29 15:14:58 +08:00 楼主你查一下你的库和表到底是不是 utf8mb4 的再说,很多人自以为用的是 utf8mb4 最后发现其实是 utf8 | 
|  |      12CloudnuY      2017-11-29 15:34:14 +08:00  1 | 
|      13q409195961      2017-11-29 15:35:34 +08:00 @edison111cry +1,最终用 Base64 编码    | 
|  |      14wsbnd9      2017-11-29 15:48:08 +08:00 utf8mb4  是可以的 | 
|  |      15zpf124      2017-11-29 15:54:28 +08:00  1 utf8mb4 是可以存的。 楼主你贴一下不能存的那个列的属性,看看你是不是改整个库的编码而并没有改列的编码,或者是 sql 工具导出时会导出列编码导致导入到新库列编码依旧是旧的。 如果你列编码属性是对的,那贴一些 mysql 版本号,让我们看看什么版本的 mysq 不支持 emoji。 | 
|      16tomoya92      2017-11-29 16:15:57 +08:00  1 @RangerWolf  #9 你看看这个 http://tomoya92.github.io/pybbs/question/ 我服务器上就是按照这个配置的 | 
|  |      178355      2017-11-29 18:21:08 +08:00 你看看字段字符集变了没 | 
|      18lyhiving      2017-11-29 18:24:51 +08:00 via Android 要看字段的编码 | 
|  |      19lhx2008      2017-11-29 18:30:12 +08:00 via Android mb4,连的时候也要指定 mb4 |