C++服务器与C#客户端,利用Sokcet进展通信,中文出现乱码
C++服务器与C#客户端,利用Sokcet进行通信,中文出现乱码
C++与C#之间socket通讯的实质数据是一个结构体,然后结构体里有字符串。
C++这边对字符串是这样做的,我将字符串数据是wchar_t类型的数组,然后C++发给C#,它收到后,如果是字母或者数字时,只能收到一个字符,比如“88888”,它只收到“8”。如果是汉字,不会收到任何信息。
如果C#发给C++,那么我还是以wchar_t来接收,此时我收到的汉字就是乱码。
C++这部分是我写的,C#是同事写的,所以C#我就不太清楚他怎么做的。
各位大侠,有现成简单的代码看看,或者怎么解决
------解决思路----------------------
C++发给C#只收到一个字节,你接收那部分有问题;第二个你用TCHAR接收试试。
------解决思路----------------------
所有的数据都用单字节流处理
------解决思路----------------------
再网络通信的时候全部转成ASCII比较好
------解决思路----------------------
对电脑而言没有乱码,只有二进制字节;对人脑才有乱码。啊 GBK:0xB0 0xA1,Unicode-16 LE:0x4A 0x55,Unicode-16 BE:0x55 0x4A,UTF-8:0xE5 0x95 0x8A
推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。
C++与C#之间socket通讯的实质数据是一个结构体,然后结构体里有字符串。
C++这边对字符串是这样做的,我将字符串数据是wchar_t类型的数组,然后C++发给C#,它收到后,如果是字母或者数字时,只能收到一个字符,比如“88888”,它只收到“8”。如果是汉字,不会收到任何信息。
如果C#发给C++,那么我还是以wchar_t来接收,此时我收到的汉字就是乱码。
C++这部分是我写的,C#是同事写的,所以C#我就不太清楚他怎么做的。
各位大侠,有现成简单的代码看看,或者怎么解决
------解决思路----------------------
C++发给C#只收到一个字节,你接收那部分有问题;第二个你用TCHAR接收试试。
------解决思路----------------------
所有的数据都用单字节流处理
------解决思路----------------------
再网络通信的时候全部转成ASCII比较好
------解决思路----------------------
对电脑而言没有乱码,只有二进制字节;对人脑才有乱码。啊 GBK:0xB0 0xA1,Unicode-16 LE:0x4A 0x55,Unicode-16 BE:0x55 0x4A,UTF-8:0xE5 0x95 0x8A
推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。