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

时间:2012-05-15 13:33:58

标签: windows winapi utf-8

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

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

Windows中是否有任何API可以帮助确定UTF8字符串的有效性?

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

1 个答案:

答案 0 :(得分:1)

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