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