发布网友 发布时间:2022-04-06 06:40
共4个回答
懂视网 时间:2022-04-06 11:02
PHP编写socket错误信息乱码的解决办法:
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; }
通过该代码转换之后输出结果正常
相关学习推荐:PHP编程从入门到精通
热心网友 时间:2022-04-06 08:10
这种情况基本是编码的问题了,可以排查。
追答数据库、php代码、与编辑器设置的编码,都要一致,从这个方向去查,准没错。
热心网友 时间:2022-04-06 09:28
连接编码出错,头部加入hearder(utf8),或者采用mt_start(gbk,utf8)这个函数来转换下传过来的数据,这样就可以解决编码问题了。追问我都没开服务器的服务,怎么会有传过来的数据呢,这是连接不上服务器报的错,一个是直接显示在界面上了(乱码),一个是我通过函数socket_last_error 获取的错误信息(正常),现在是连接不上端口,底层报出来的错误显示乱码。我想问的是为什么同一个错误信息,为什么其中一个会显示乱码
热心网友 时间:2022-04-06 11:02
你还是用fsockopen