我们需要编写一个函数来检查字符串是否为有效的 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/