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

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

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

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

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


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

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

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

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

UTF-8 无BOM编码。

你可能感兴趣的:(linux,PHP,echo)