在linux下PHP的echo返回字符串的异常情况

在将项目webserver从windows移植到linux下时发现了一个异常情况。

项目情况为服务端使用PHP+nginx搭建的webserver,客户端使用C++,通信使用json字符串,具体流程为服务端将通信的数据对象转换为json字符串返回给客户端,在客户端通过解析该字符串初始化对应的C++对象。

异常情况为将服务端移植到linux环境下,客户端收到的服务器返回的json字符串在开头的6个字节为乱码,截图如下:

182522_wFyj_1034400.png图中 大括号之后的字符串为传输的数据,而之前的3个中文字符为无效数据。在移植过程中服务端的代码没有进行任何的改动,PHP的版本也和windows下的一致,但就是返回的字符串开头会固定6个字节的无效字符,暂时还未找到原因,目前的解决方案为在客户端中加了对开头无效字符的过滤。


敬请遇到过该问题的大神指教其中原因,不胜感激。

补充个服务端返回json字符串的PHP文件截图:

110500_sxIg_1034400.png

其中seneMsg函数即为返回json字符串给客户端,echo 后的内容即为客户端收到的内容,服务端的代码文件格式都为

UTF-8 无BOM编码。

转载于:https://my.oschina.net/waterkit/blog/289508

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值