MFC使用Unicode字符集在网络编程接收数据乱码或不完整的解决办法
来源:互联网 发布:战舰世界世界大和知乎 编辑:程序博客网 时间:2024/05/16 08:19
VC6.0中默认使用的是多字节编码,而从VS2005以后,默认使用的是Unicode字符编码方式,尤其在VS2013中还取消了对于多字节编码的支持,需要额外安装插件。如果使用多字节编码就不会遇到本文所说的问题,但是用Unicode字符编码方式也是有好处的,除了支持程序主题更美观,更重要的是统一编码标准。这或许就是vs中取消多字节编码的一个原因吧。
好,切入正题。在socket编程中,如果使用的Unicode编码,接收的到数据会发生乱码或者只接收到了第一个字符,那么要如何解决呢?我们只需要在发送数据的时候通过以下方式进行转换,就能够正常运行了:
int nLen;char * wsabuf = NULL;#ifdef _UNICODE//CString转换成char*USES_CONVERSION;wsabuf = W2A(m_strMsg);//m_strMsg为CString消息nLen = strlen(wsabuf);nSent = m_sConnectSocket.Send(wsabuf, nLen);//发送数据#elsenLen = m_strMsg.GetLength();nSent = m_sConnectSocket.Send(LPCTSTR(m_strMsg), nLen);//发送数据#endif
注意如果出现函数未定义的错误就包含一下头文件://#include <afxconv.h>
0 0
- MFC使用Unicode字符集在网络编程接收数据乱码或不完整的解决办法
- 关于MFC使用 Unicode 字符集出现乱码的问题
- mfc中socket字符接收不完整unicode问题
- VC中使用CFile正确的追加写中文数据到文件不出现乱码-unicode字符集
- @PathVariable参数接收不完整的解决办法
- 循环buffer解决网络通信中数据的不完整接收
- 解决使用MSComm控件进行串口数据的接收数据不完整
- vs2010 MFC所使用字符集不同时导致控件外观不一样的解决办法
- 在VS2010进行MFC编程设置字符集的问题(使用多字节字符集引起错误)
- Qt串口通信接收数据不完整的解决方法
- Qt中realAll() 接收数据不完整的问题
- MFC 对话框使用 Unicode 字符集与使用多字节字符集的不同
- 【MFC】将CString类型的十六进制数字,转换成整形(在使用Unicode字符集的情况)
- PhpMyAdmin隐藏或去掉不使用的字符集或编码
- MFC使用CFile读写Unicode字符集文件
- MFC使用CFile读写Unicode字符集文件
- 在使用SQLite插入数据时出现乱码的解决办法
- 关于MYSQL在UTF-8字符集下乱码的解决办法
- latex 表格列宽度固定的情况下让文字居中显示
- latex 表格中单元格换行,显示多行
- web---bootstrap
- latex 中图片或者表格跨两栏居中的方法
- latex 复杂表格(多行多列)的制作
- MFC使用Unicode字符集在网络编程接收数据乱码或不完整的解决办法
- vector删除操作 erase方法注意事项
- UnityEngine.Application.LoadLevel(int)已过时
- Codeforces 601A The Two Routes
- 全局变量,静态全局变量,局部变量,静态局部变量的区别
- 【spring 4】AOP:动态代理
- 个人总结之I2C总线协议
- 基于深度学习的视频识别方法概览
- PHP 加密