2

Microsoft Visual Studio 2005を使用して、拡張ASCIIでエンコードされたstd :: stringをutf8に変換するにはどうすればよいですか?

私はグーグルプロトコルバッファを使用しています、そして私が変換なしでそれを与えるならば、それは私の文字列の非utf8文字について不平を言っています、それは本当です...

4

2 に答える 2

2

MultiByteToWideCharを使用して文字列をUTF-16に変換してから、 WideCharToMultiByteを使用してUTF-8に変換します。

于 2010-09-09T16:30:15.487 に答える
2

神秘的なExntendedASCIIがLatin1であると仮定しましょう。次に、ウィキペディアのマスクを使用します。

110y yyxx 10xx xxxx

00..FFしかないので、次のようになります1100 00xx 10xx xxxx

変換アルゴリズムは次のようになります。charコードが127未満の場合はそのままダンプし、127を超える場合は0xC0 | ((x & 0xC0) >> 24)最初のバイトに移動し、2番目は((x & 0x3F) | 0x80)

于 2010-09-09T16:35:44.027 に答える