我有一条广泛的XML消息,需要在C ++中发送Win32插座。

TCHAR wszBuffer[1024];

我是不是该 sprintf(szSendBuffer, "%S", wszBuffer) 广泛的角色缓冲区 char 阵列发送之前?

发送此消息的正确方法是什么?

有帮助吗?

解决方案

将wszbuffer直接传递到套接字功能,将其施放为char *,长度为= sizeof(wszbuffer)或1024 * sizeof(tchar)。在这种情况下,缓冲区将按原样发送。

如果要以ANSI字符串发送此文本,请通过任何字符串转换函数进行转换。 Sprintf还可以,另一种方法是W2A。但是一些信息可能会丢失。

其他提示

由于您正在处理XML,因此您需要在UTF-8或其他XML友好的字符编码(并在XML的Prolog中指定编码)中对其进行编码,然后再通过插座发送。

采用 WideCharToMultiByte 将其转换为UTF-8(或任何其他 char- 只要您在XML文件中声明)。

您可以简单地将其扔给char*。另一方面,您可以简单地将收到的缓冲区施加到WCHAR_T*。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top