• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHPSocketorTCP连接错误信息显示乱码问题处理

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

错误说明

在项目中编码都是使用UTF-8编码。当用到Socket或者TCP连接的时候出现错误,错误信息不是UTF-8的编码,所以输出看到的是乱码且在输出json格式输出的时候是空白

比如在本地位win7系统: 错误信息提示: Can not connect to tcp://127.0.0.1:1238 ����Ŀ�����������ܾ����޷����ӡ�

使用函数检查上面错误信息编码为 EUC-CN,EUC-CN就是GBK2312编码的别名。

封装函数处理:检查错误信息如果不是UTF-8编码的,转换成UTF-8编码

   /**
     * 处理乱码的错误信息(比如socket,tcp。。。)
     * @param $str
     * @return null|string|string[]
     */
    public static 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;
    }

在linux系统环境中是没有问题的,提示都是英文的:Can not connect to tcp://127.0.0.1:1238 Connection refused[1]

EUC-CN

EUC-CN是GB2312最常用的表示方法。浏览器编码表上的“GB2312”,通常都是指“EUC-CN”表示法
参考: https://wapbaike.baidu.com/item/EUC-CN
参考: https://segmentfault.com/q/1010000006938661


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
macphpSwoole入门发布时间:2022-07-10
下一篇:
使用MacPorts配置PHP开发环境(PHP54+PHPFPM+NGINX+MYSQL55)发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap