微信取得nicknameにEmojiが存在するため、空に保存される問題の解決

1541 ワード

微信の開発では、Emojiの表情をユーザーのニックネームとして使用していたため、データベースにニックネームが保存されているときに認識されないため、ニックネームが空になったという解決策が提案されています.
/**
  +----------------------------------------------------------
 *              
  +----------------------------------------------------------
 * @param string    $str           
  +----------------------------------------------------------
 */
function jsonName($str) {
    if($str){
        $tmpStr = json_encode($str);
        $tmpStr2 = preg_replace("#(\\\ud[0-9a-f]{3})#ie","",$tmpStr);
        $return = json_decode($tmpStr2);
        if(!$return){
            return jsonName($return);
        }
    }else{
        $return = '    -'.time();
    }    
    return $return;
}

nicknameが空であるか否かを判断し,空である場合はランダムに1つの名前で保存し,表情が存在する場合は表情をフィルタリングして保存するのが原理である.表情の行をフィルタリングして、私のここで見た表情json_encodeの後の上位2人はudなので、これを採用して、あなたたちは自分の実際の状況によって修正することができます.そして、誰かがhttp://www.zhihu.com/question/37131723?sort=createdというソリューションは、人によっても参考になりますが、より良いソリューションがあれば、伝言を残して共有してください.