MySQL 如何才能存储 “” 这个字符 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
RangerWolf
V2EX    问与答

MySQL 如何才能存储 “” 这个字符

  •  
  •   RangerWolf 2017-11-29 13:26:38 +08:00 3408 次点击
    这是一个创建于 2943 天前的主题,其中的信息可能已经有所发展或是发生改变。
    测试 utf8 跟 utf8mb4 都不行

    求解
    19 条回复    2017-11-29 18:30:12 +08:00
    voocel
        1
    voocel  
       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;
    }
    ```
    tomoya92
        2
    tomoya92  
       2017-11-29 13:49:02 +08:00   1
    utf8mb4 是可以的,你估计编码还是没有处理好

    ![C24EAC35-FBCE-4CEC-9C1D-8FAD9BD67169.png]( https://i.loli.net/2017/11/29/5a1e4a37a2e9b.png)
    sun019
        3
    sun019  
       2017-11-29 13:51:21 +08:00
    utf8mb4 可以 现在系统上就是用的这个
    SourceMan
        4
    SourceMan  
       2017-11-29 14:23:55 +08:00
    utf8mb4 直接可以存呀。
    edison111cry
        5
    edison111cry  
       2017-11-29 14:25:23 +08:00   1
    我之前也遇到过 MYSQL 存储不了四字节的,设置了半天也不行,然后存的时候直接 base64_encode 一下存进去,取出来显示的时候 base64_decode 一下再显示
    RangerWolf
        6
    RangerWolf  
    OP
    /div>   2017-11-29 14:45:43 +08:00
    @sun019 @SourceMan 有的表情符号是可以, 能帮忙试试看我标题的这个可以么?
    RangerWolf
        7
    RangerWolf  
    OP
       2017-11-29 14:46:17 +08:00
    @voocel 感谢, 只不过我这个是存爬虫, 不涉及前端
    我参考你的代码来改造一下。 再次感谢!
    RangerWolf
        8
    RangerWolf  
    OP
       2017-11-29 14:47:42 +08:00
    @edison111cry 也是个办法 赞!
    RangerWolf
        9
    RangerWolf  
    OP
       2017-11-29 14:48:18 +08:00
    @liygheart 我的环境跟你一样的。 能分享一下你是如何设置的么?
    多谢!
    SourceMan
        10
    SourceMan  
       2017-11-29 14:50:51 +08:00
    abcbuzhiming
        11
    abcbuzhiming  
       2017-11-29 15:14:58 +08:00
    楼主你查一下你的库和表到底是不是 utf8mb4 的再说,很多人自以为用的是 utf8mb4 最后发现其实是 utf8
    CloudnuY
        12
    CloudnuY  
       2017-11-29 15:34:14 +08:00   1


    q409195961
        13
    q409195961  
       2017-11-29 15:35:34 +08:00
    @edison111cry +1,最终用 Base64 编码
    wsbnd9
        14
    wsbnd9  
       2017-11-29 15:48:08 +08:00
    utf8mb4 是可以的
    zpf124
        15
    zpf124  
       2017-11-29 15:54:28 +08:00   1
    utf8mb4 是可以存的。
    楼主你贴一下不能存的那个列的属性,看看你是不是改整个库的编码而并没有改列的编码,或者是 sql 工具导出时会导出列编码导致导入到新库列编码依旧是旧的。

    如果你列编码属性是对的,那贴一些 mysql 版本号,让我们看看什么版本的 mysq 不支持 emoji。
    tomoya92
        16
    tomoya92  
       2017-11-29 16:15:57 +08:00   1
    @RangerWolf #9 你看看这个 http://tomoya92.github.io/pybbs/question/ 我服务器上就是按照这个配置的
    8355
        17
    8355  
       2017-11-29 18:21:08 +08:00
    你看看字段字符集变了没
    lyhiving
        18
    lyhiving  
       2017-11-29 18:24:51 +08:00 via Android
    要看字段的编码
    lhx2008
        19
    lhx2008  
       2017-11-29 18:30:12 +08:00 via Android
    mb4,连的时候也要指定 mb4
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2311 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 45ms UTC 15:58 PVG 23:58 LAX 07:58 JFK 10:58
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86