ホームページ  >  記事  >  バックエンド開発  >  PHPソケットが文字化けする問題を解決する方法

PHPソケットが文字化けする問題を解決する方法

藏色散人
藏色散人オリジナル
2020-07-13 10:42:253696ブラウズ

php ソケットの文字化けコードの解決策: まず、「mb_detect_encoding(socket_last_error($socket))」メソッドでエラー メッセージのエンコードを確認し、次にエラー メッセージを「UTF-8」エンコードに変換します。

PHPソケットが文字化けする問題を解決する方法

#PHP 書き込みソケットのエラー メッセージが文字化けする問題

問題

PHP プロジェクトのデフォルトのためUTF-8エンコーディングが使用されている ソケットプログラミング使用時のエラーメッセージがUTF-8エンコーディングではないため、ブラウザやコンソールでは出力エラーが文字化けして表示されます。

エラー メッセージは次のとおりです:

socket_connect(): unable to connect [10061]: ����Ŀ����������ܾ����޷����ӡ�

処理プロセス

1. まず、次のコードでエラー メッセージのエンコードを確認してください

mb_detect_encoding(socket_last_error($socket))

結果は ASCII として出力されます。

2. 最初のステップのチェック結果から、エラー メッセージのエンコーディングが UTF-8 ではないことがわかっているため、エラー メッセージを UTF-8 エンコーディングに変換する必要があります。これは、次の関数によって実現できます:

 function doEncoding($str){
        $encode = strtoupper(mb_detect_encoding($str, ["ASCII",'UTF-8',"GB2312","GBK",'BIG5']));
        if($encode!='UTF-8'){
            $str = mb_convert_encoding($str, 'UTF-8', $encode);
        }
        return $str;
    }

このコード変換後の出力結果は正常です

socket_connect() failed. 理由: ターゲット コンピュータが積極的に拒否しているため、接続を確立できません。

関連知識の詳細については、

PHP 中国語 Web サイト をご覧ください。

以上がPHPソケットが文字化けする問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。