php ソケットの文字化けコードの解決策: まず、「mb_detect_encoding(socket_last_error($socket))」メソッドでエラー メッセージのエンコードを確認し、次にエラー メッセージを「UTF-8」エンコードに変換します。
#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 サイトの他の関連記事を参照してください。