Maison  >  Questions et réponses  >  le corps du texte

php如何显示curl返回的Unicode escape strings?如"\u6b22\u8fce\u56de\u6765"

php的curl返回string(42) "{"ret":1,"msg":"u6b22u8fceu56deu6765"}",想知道该怎样显示正确的文字? "u6b22u8fceu56deu6765"对应的是"欢迎回来"

淡淡烟草味淡淡烟草味2736 Il y a quelques jours1567

répondre à tous(2)je répondrai

  • ringa_lee

    ringa_lee2017-05-16 13:07:33

    Si vous pouvez gérer le côté serveur, vous pouvez contrôler si le chinois n'est pas codé via le deuxième paramètre de json_encode.
    http://php.net/manual/zh/func...
    Si vous ne pouvez pas traiter le serveur, vous pouvez traiter le résultat renvoyé par curl Décodez d'abord json, puis re-json_encode (également contrôlé selon. le deuxième paramètre)

    répondre
    0
  • 漂亮男人

    漂亮男人2017-05-16 13:07:33

    La personne qui a répondu ne l'a toujours pas expliqué suffisamment en détail, le débutant n'a donc pu chercher que lentement sur Internet... et a trouvé une solution parfaite :

    <?php
    $arr = array('p1'=>'nihao','p2'=>2,'ch'=>'码农你好!');
    $json = json_encode($arr);
    echo decodeUnicode($json);
    
    function decodeUnicode($str){
        return preg_replace_callback('/\\u([0-9a-f]{4})/i',
            create_function(
                '$matches',
                'return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE");'
            ),
            $str);
    }
    ?>

    Référence : http://www.manongjc.com/artic...

    répondre
    0
  • Annulerrépondre