拡張ASCIIからUTF8への変換
-
01-10-2019 - |
質問
Microsoft Visual Studio 2005を使用して、拡張ASCIIでUTF8にエンコードされたSTD ::文字列をどのように変換しますか?
私はGoogleプロトコルバッファーを使用していますが、コンバージョンなしでそれを与えると、文字列内のUTF8以外の文字について不平を言っています。
解決
使用する MultiByteTowideChar 文字列をUTF-16に変換するには、使用します widechartomultibyte UTF-8に変換します。
他のヒント
神秘的なExntended Asciiはただのラテン語であると仮定しましょう。次に、ウィキペディアのマスクを使用します。
110y yyxx 10xx xxxx
00..ffしか持っていないので、あなたは持っています: 1100 00xx 10xx xxxx
.
変換アルゴリズムはフォローします、charコードが<127の場合、そのままダンプするだけです。 0xC0 | ((x & 0xC0) >> 24)
ファーストバイトに移動します、2番目です ((x & 0x3F) | 0x80)
所属していません StackOverflow