سلسلة حرفية Unicode في C # مقابل C ++ / CLI
-
22-07-2019 - |
سؤال
C#:
char z = '\u201D';
int i = (int)z;
C++/CLI:
wchar_t z = '\u201D';
int i = (int)z;
في C # "i
" يصبح، تماما كما أتوقع، 8221 ($ 201D). في C ++ / CLI من ناحية أخرى، فإنه يصبح 65428 (FF94 $). يمكن لبعض أنواع النفس يفسر هذا لي؟
تعديل : لحجم wchar_t
لا يمكن أن يكون من القضية هنا، للأسباب التالية:
C++/CLI:
wchar_t z = (wchar_t)8221;
int i = (int)z;
وهنا أيضا، i
يصبح 8221، وذلك wchar_t
صعودي للعبة عقد عدد صحيح 16 بت على نظام بلدي. Ekeforshus
المحلول
نصائح أخرى
ووفقا ل ويكيبيديا :
<اقتباس فقرة> و"عرض wchar_t
هو مترجم محددة، ويمكن أن تكون صغيرة مثل 8 بت، وبالتالي فإن البرامج التي تحتاج لتكون محمولة عبر أي C أو مترجم C ++ يجب عدم استخدام wchar_t لتخزين نص Unicode. والمقصود من نوع wchar_t ل تخزين الأحرف واسعة المعرفة من قبل المترجم، والتي قد تكون أحرف Unicode في بعض المجمعين ".
ويجب عدم إجراء أية افتراضات حول كيفية انها تنفذ.
لا تنتمي إلى StackOverflow