php socket亂碼的解決辦法:首先通過“mb_detect_encoding(socket_last_error($socket))”方法對錯誤信息的編碼進行檢查;然后將錯誤信息轉(zhuǎn)為“utf-8”編碼即可。
php編寫socket錯誤信息亂碼問題
問題
由于php項目默認都是使用的utf-8編碼,由于使用socket編程時的報錯信息不是使用的utf-8編碼,導(dǎo)致輸出的錯誤在瀏覽器和控制臺上顯示的都是亂碼。
錯誤提示如下:
socket_connect(): unable to connect [10061]: ?處理過程
1.首先,通過以下代碼對錯誤信息的編碼進行檢查
mb_detect_encoding(socket_last_error($socket))結(jié)果輸出為ascii。
2.通過第一步的檢查結(jié)果可知錯誤信息的編碼不是utf-8,所以需要將錯誤信息轉(zhuǎn)為utf-8編碼??赏ㄟ^以下函數(shù)實現(xiàn):
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; }通過該代碼轉(zhuǎn)換之后輸出結(jié)果正常
socket_connect() failed. reason: 由于目標計算機積極拒絕,無法連接。
更多相關(guān)知識,請訪問php中文網(wǎng)!