UTF-8在VC++中支持web应用程序
UTF-8 Support in VC++ for web application
我刚刚开始为IIS7创建本机模块。我使用的是来自http://msdn.microsoft.com/en-us/library/ms689348(v=vs.90).aspx。在那里编写的示例代码运行良好。现在我正在尝试更改此代码,以支持在浏览器中显示UTF-8编码。我做了以下更改:
//1. Changed here to include ;charset=UTF-8 in Http Header Content Type
pHttpResponse->SetHeader(HttpHeaderContentType, "text/plain;charset=UTF-8", (USHORT)strlen("text/plain;charset=UTF-8"), TRUE);
//2. Changed here data type as PCTSTR which is PCWSTR(16-bit) since I have UNICODE defined.
PCTSTR pszBuffer = L"Hello World!";
HTTP_DATA_CHUNK dataChunk;
dataChunk.DataChunkType = HttpDataChunkFromMemory;
DWORD cbSent;
dataChunk.FromMemory.pBuffer = (PVOID)pszBuffer;
//3. Changed here to calculate length using wcslen.
dataChunk.FromMemory.BufferLength = (USHORT)wcslen(pszBuffer);
hr = pHttpResponse->WriteEntityChunks(&dataChunk, 1, FALSE, TRUE, &cbSent);
我的第一个疑问是如何制作pszBuffer UTF-8字符串?
第二个疑问是如何正确计算这个长度(注释3上的代码)?
还有没有其他方法可以写入响应,而不是创建缓冲区、chunck等。?
如果您想将字符串文字设置为UTF-8,请将源文件的编码设置为UTF-8而不带BOM。然后,您可以将普通字符串文字用作UTF-8。使用WideCharToMultiByte
和MultiByteToWideChar
在UTF-16和UTF-8字符串之间进行转换。
如果你的项目使用ATL,你可以使用ATL提供的字符串转换宏来轻松地在UTF-16和UTF-8之间转换;看见http://msdn.microsoft.com/en-us/library/87zae4a3.aspx了解如何使用。
如果需要字符串中的字节数,请在UTF-8字符串中使用strlen
。
另一种写入响应的方法是使用HTTP_DATA_CHUNK::FromFileHandle
而不是HTTP_DATA_CHUNK::FromMemory
。HTTP_DATA_CHUNK::FromFileHandle
接受要用作响应的文件句柄。
相关文章:
- 我的web应用程序的用户需要在浏览器上手动启用本机客户端吗
- Java JNI GDAL 本机库在重新部署为 Web 应用程序时出现类加载器错误
- 用于管理 CATIA 文件的 Web 应用程序
- 我想将使用 VTK、C++ 和 QT 开发的桌面应用程序移植到 Web 应用程序
- 将C 代码(本机客户端)移植到浏览器(Web应用程序)
- 如果您不编写 Web 应用程序,并且您的客户端不是浏览器,那么 Web 套接字相对于常规套接字的优势是什么?
- 将Web应用程序作为资源嵌入到Qt可执行文件C++
- 想要在Web应用程序中使用本机C库,我的选择是什么
- 如何在C++服务器应用程序和django web应用程序之间进行通信
- 我可以通过使用 Wt 作为我的 Web 框架在 Web 应用程序中完全隐藏 "behind" C 代码吗?
- 在web应用程序中使用Zhu Ramanan代码
- 从 IIS 7.5 Web 应用程序调用 Win32 CreateEvent() 失败
- 将 c# asp.net Web 应用程序与C++ dll 链接时,是在服务器或客户端上运行的 dll 代码
- 如何在 Web 应用程序中使用本机库方法
- 实现 Web 应用程序的张量分解的最有效语言
- 如何在使用 Boost C++ 编写的 php Web 应用程序中读取地图(在共享区域中)
- 在Java Spring Maven web应用程序中调用C/C++函数
- 如何设置C++web应用程序服务器侦听来自tomcat/restlet服务器的http请求
- 将Simplemembership轻松集成到现有的Web应用程序中
- 是否有一个类似于.NET框架的基于C++的DebianLinux web应用程序框架