windows - 检查 UTF8 编码字符串的有效性

标签 windows winapi utf-8

我们需要编写一个函数来检查字符串是否为有效的 UTF8。客户端发送数据(应该是 UTF8),在服务器端,我们要确认发送的数据是否真的是 UTF8。

客户端是BREW(移动平台)应用程序,服务器是在windows桌面上编写的(windows的API)。

Windows 中有没有API 可以帮助确定UTF8 字符串的有效性?

我见过类似 MultiByteToWideChar() 的东西,它将 UTF8 转换为宽字符(2 个字节),如果我们使用这个函数但它失败了,这意味着传递的字符串没有 UTF8 字符/字符。

最佳答案

您可以使用 MultiByteToWideChar()使用 MB_ERR_INVALID_CHARS 标志和传递给 cchWidechar 的 0 函数。 如果它返回一个大小,那么它是有效的。如果它返回 0,您可以检查 GetLastError 并查看它是否返回 ERROR_NO_UNICODE_TRANSLATION

关于windows - 检查 UTF8 编码字符串的有效性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10601880/

相关文章:

c++ - C++ Windows API MOUSEEVENTF_XDOWN,MOUSEEVENTF_XUP不起作用

c++ - WM_MOUSEWHEEL 停止工作,而其他事件仍在 WinAPI (C++) 中工作

c - 进程终止时是否保证发送 RST 数据包?

c++ - WideCharToMultiByte 问题

java - 如何使用 JavaMailSenderImpl 发送 UTF-8 编码的电子邮件正文?

java - Windows 7/8 和 OS X 上的 Emacs SmartCompile for Java

windows - x64 native 工具命令提示符和 x64 交叉工具命令提示符有什么区别?

windows - ActiveX 无法在没有特权提升的情况下运行 .exe

c++ - 如何为 IE 编译和构建这个 BHO?

java - 即使已配置,Maven 安装也不会以 UTF-8 编码