3

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

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

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

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

4

1 回答 1

2

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

于 2012-05-15T13:45:11.523 回答