سؤال

كيف يمكنك تحويل 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)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top