التحويل من ASCII الممتد إلى UTF8
-
01-10-2019 - |
سؤال
كيف يمكنك تحويل std :: سلسلة مشفرة في ASCII الموسعة إلى UTF8 باستخدام Microsoft Visual Studio 2005؟
أنا أستخدم مخزن المؤقت بروتوكول Google وهو يشكو من أحرف غير UTF8 في سلطتي إذا أعطيتها دون تحويل ، وهذا صحيح ...
المحلول
يستخدم multibytetoWidechar لتحويل السلسلة إلى UTF-16 ، ثم استخدم Widechartomultibyte لتحويله إلى UTF-8.
نصائح أخرى
دعنا نفترض أن exntended exntended ascii هو مجرد لاتيني 1. ثم استخدم قناع من ويكيبيديا:
110y Yyxx 10xx xxxx
بما أن لديك 00..FF فقط ، فلديك: 1100 00xx 10xx xxxx
.
ستتبع خوارزمية التحويل ، إذا كان رمز char أقل من 127 ، فما عليك سوى تفريغه كما هو ، إذا كان> 127 فأنت تفعل 0xC0 | ((x & 0xC0) >> 24)
يذهب إلى البايت الأول ، والثاني هو ((x & 0x3F) | 0x80)
لا تنتمي إلى StackOverflow