怎麼解決php socket亂碼問題

藏色散人
發布: 2023-03-02 13:30:02
原創
3693 人瀏覽過

php socket亂碼的解決方法:先透過「mb_detect_encoding(socket_last_error($socket))」方法對錯誤訊息的編碼進行檢查;然後將錯誤訊息轉為「UTF-8」編碼即可。

怎麼解決php socket亂碼問題

PHP寫socket錯誤訊息亂碼問題

問題

由於php專案預設都是使用的UTF-8編碼,由於使用socket編程時的報錯訊息不是使用的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. Reason: 由於目標電腦積極拒絕,無法連線。

更多相關知識,請造訪PHP中文網

以上是怎麼解決php socket亂碼問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板