在c中获取正确编码的字符串
发布时间:2020-12-16 09:44:07 所属栏目:百科 来源:网络整理
导读:我之前问过类似的问题. 但我仍然在编码中遇到麻烦. 我试着尽可能地描述问题. 我有一个c客户端,通过TCP与c#服务进行通信. 现在我需要在Messagebox(Win32 API)中显示来自服务的消息. 由c#服务发送的字节是UTF-8编码的. 重要的是,c客户端只能在Windows系统上运
我之前问过类似的问题.
但我仍然在编码中遇到麻烦. 我试着尽可能地描述问题. 我有一个c客户端,通过TCP与c#服务进行通信. 重要的是,c客户端只能在Windows系统上运行. 这是接收字节并显示Text的代码: char buffer[1024]; int receivedBytes = recv(socketHandle,buffer,sizeof(buffer) - 1,0); char str[receivedBytes]; for (int index = 0; index < receivedBytes; index++) { str[index] = buffer[index]; } MessageBox(mainWindow,(LPCTSTR)str,(LPCTSTR) "Fehler",MB_OK|MB_ICONERROR); 如果文本包含类似ü??的聊天,则它们不会以正确的方式显示在消息框中. 谢谢你的帮助 托比 解决方法
如果要在Windows中显示unicode字符,则需要将UTF8字符串转换为UTF16(较旧的UCS2),因为这是Windows处理的unicode标准.你用
MultiByteToWideChar功能做到这一点.
还要确保在包含Windows标头之前设置了#define UNICODE,以便MessageBox指向MessageBoxW或显式使用MessageBoxW. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |