2 rendao0563 rendao0563 于 2016.03.25 14:08 提问

php socket_read() 接受C# 发送的字节数组 byte[] ,汉字出现乱码。 100C

如标题,在C#中,用系统函数
socket.BeginReceive(resultByte, 0, resultByte.Length, System.Net.Sockets.SocketFlags.None, new AsyncCallback(this.OnDataReceived), socket);
resultString = Encoding.Unicode.GetString(resultByte, 0, Count);

            这个resultString是正常接收返回,但是PHP中用socket_read()读取出来的确有乱码问题,可能是中文编码的问题。
            求大神该怎么解决啊?

2个回答

bdmh
bdmh   Ds   Rxr 2016.03.25 14:47

双方采用统一的编码方式就行了,比如都采用utf8

enpterexpress
enpterexpress   Rxr 2016.03.25 14:24
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
php socket_read()函数的问题
服务器端文件:socket_server.php: phpinfo(); //用WEB打开的时候为了防止网页超时连接,需要设置无限有效 set_time_limit(0);   /**加载Socket必备的库*/ if(!extension_loaded('sockets')) { if(strtoupper(substr(PHP_OS, 3)) == “WIN”) { dl
php socket_recv 和 socket_read
前几天用PHP写一个socket网络服务,在文档里看到socket_read和socket_recv这两个方法时有点晕,乍一看这不是一样的嘛,干吗还要给两个不同的用法呢。看文档没看太明白,看了下源码才搞清楚,在这里记录一下。 先看一下这两个函数的声明: 复制代码代码如下: string socket_read ( resource $socket , int $lengt
php字符串与byte字节数组转化类示例
/**    * byte数组与字符串转化类    */    class Bytes {          /**        * 转换一个String字符串为byte数组        * @param $str 需要转换的字符串        * @param $bytes 目标byte数组        * @author Zikie       
c#中文字符串与byte数组互相转化
因为中文字符串一个字符占两个字节,所以不能用正常的方式与byte之间进行互相转化 中文字符串转成byte[] byte[] ping = Encoding.UTF8.GetBytes("你的密码是什么?"); byte[]转化成中文字符串: string str = Encoding.UTF8.GetString(ping);
C#用byte[]字节数组获取C中byte*指针
在C中,byte*对应C#中Sbyte,所以没有直接转换的机制,目前开发过程中发现采用System.Runtime.InteropServices.Marshal还是一个不错的选择,,详情请参考如下代码:接口调用文件中,用句柄获取C中byte*,[DllImport("MKL_Camera.dll", EntryPoint = "MKL_CaptureBuffer")public static extern IntPtr MKL_CaptureBuffer(capture_type captureType,
C# 常见的字节数组 byte[] 复制方法
源地址:C# 常见的字节数组 byte[] 复制方法 - 仆人 - 博客园  http://www.cnblogs.com/craigtao/p/4308143.html byte[] src ={1,2,3,4,5}; byte[] dest = new byte[src.Length]; for(int i=0; i) { dest[i] = src[i] }
c# byte字节数组与string字符串之间的转换
字符串转换为字节数组:            string str = richTextBox2.Text.Trim()+"\r\n";             byte[] buffer = Encoding.UTF8.GetBytes(str);             socketSend.Send(buffer);            字节数组转换为字符串:    
android-async-http byte字节数组上传文件
Android-async-http RequestParams支持byte字节数组形式 文件上传 利用RequestParams上传文件 类RequestParams支持multipart file 文件上传 (1)添加文件对象用于上传 File myFile = new File("/path/to/file.png"); RequestParams params
C# byte字节数组比较方法分析
///         /// 转成Base64字符串进行比较         ///         ///         ///         ///         private bool BytesCompare_Base64(byte[] b1, byte[] b2)         {             if (b1 == null || b2 =
C# 三种字节数组(byte[])拼接的性能对比测试
C#中的三种字节数组拼接方式的性能对比测试DEMO。 博文地址:http://blog.csdn.net/sqqyq/article/details/50986977