我们需要编写一个函数来检查字符串是否有效UTF8。客户端发送数据(应该是UTF8),在服务器端,我们要确认发送的数据是否真的是UTF8。
客户端是BREW(移动平台)应用程序,服务器是在Windows桌面上编写的(Windows的API)。
Windows中是否有任何API可以帮助确定UTF8字符串的有效性?
我见过类似MultiByteToWideChar()
的东西,它将UTF8转换为宽字符(2个字节),如果我们使用这个函数但它失败了,这意味着传递的字符串没有UTF8字符/字符。
答案 0 :(得分:1)
您可以将MultiByteToWideChar()
函数与MB_ERR_INVALID_CHARS
标志一起使用,并将0传递给cchWidechar
。
如果它返回一个大小,那么它是有效的。如果它返回0,则可以检查GetLastError
并查看它是否返回ERROR_NO_UNICODE_TRANSLATION
。