3

文字列が有効なUTF8であるかどうかをチェックできる関数を作成する必要があります。クライアントはデータ(UTF8であると想定されています)を送信し、サーバー側では、送信されたデータが実際にUTF8であることを確認したいと思います。

クライアントはBREW(モバイルプラットフォーム)アプリケーションであり、サーバーはWindowsデスクトップ(WindowsのAPI)で記述されています。

UTF8文字列の有効性を判断するのに役立つAPIはWindowsにありますか?

UTF8をワイド文字(2バイト)に変換するようなものを見たことがMultiByteToWideChar()ありますが、この関数を使用して失敗した場合は、渡された文字列にUTF8文字が含まれていないことを意味します。

4

1 に答える 1

2

フラグと 0 を渡してMultiByteToWideChar()関数を使用できます。サイズが返された場合、それは有効です。0 が返された場合は、 が返されるかどうかを確認できます。MB_ERR_INVALID_CHARScchWidecharGetLastErrorERROR_NO_UNICODE_TRANSLATION

于 2012-05-15T13:45:11.523 に答える