Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;用Wininet进行UTF-8编码_C++_Visual Studio 2010_Utf 8_Wininet - Fatal编程技术网

C++ C++;用Wininet进行UTF-8编码

C++ C++;用Wininet进行UTF-8编码,c++,visual-studio-2010,utf-8,wininet,C++,Visual Studio 2010,Utf 8,Wininet,我在通过Wininet阅读网页时遇到一些编码问题。 这就是我正在做的: char receivedContent[16344]; InternetReadFile(hInternetRequest, receivedContent, 16344, &charsRead); 当我尝试将收到的字符输出到控制台或Windows控件(例如MessageBox)时,会出现问题,其中每个非ANSI字符都变成\uxxx 我还尝试使用MultiByteToWideChar()函数,但它似乎没有改变任何

我在通过Wininet阅读网页时遇到一些编码问题。 这就是我正在做的:

char receivedContent[16344];
InternetReadFile(hInternetRequest, receivedContent, 16344, &charsRead);
当我尝试将收到的字符输出到控制台或Windows控件(例如MessageBox)时,会出现问题,其中每个非ANSI字符都变成\uxxx

我还尝试使用MultiByteToWideChar()函数,但它似乎没有改变任何事情

wchar_t receivedContentUtf[4086];
MultiByteToWideChar(CP_UTF8, 0, receivedContent, -1, receivedContentUtf, 4086);
MessageBox::Show(gcnew System::String(receivedContentUtf);       

是什么阻止您编写一些代码来用所需字符替换\uxxx\顺便说一下,Uxxx与UTF-8无关。您是否有意使用C++/CLI<代码> > GCNEX//COD>不是标准C++,并且有一个C++兼容的函数,可以直接使用<代码> WCARYTT[]/COD>直接。@ john Well,我可以用适当的字符替换那些UXXXX,但是我需要的不仅仅是几个字符,就像一个语言中的符号一样。基本上,这个函数应该能够正确读取服务器抛出的任何UTF字符。我不知道它是否与UTF/编码相关,但对我来说,它似乎会影响例如变音字符和西里尔字符,所以我认为这有问题。@mAlters是的,我是有意使用它的。MessageBox只是我目前用于测试此函数是否返回正确字符的一个示例。然后,这些数据将被解析并存储在其他表单组件中。@user3017072:这是一个相当模糊的表示法。根据
strlen()
“s\u0142owo”
中有多少个字符?5还是10?另外,服务器发送一个编码响应,您确定服务器真的在发送słowo而不是s\u0142owo吗?