ماذا يعني عندما بلدي النص يظهر على شكل علامات استفهام?

StackOverflow https://stackoverflow.com/questions/217237

  •  03-07-2019
  •  | 
  •  

سؤال

أحاول عرض بعض النص في البرنامج باستخدام (أقول) Windows GDI بعض أحرف unicode يتم عرض علامات استفهام?ما هو ؟

انظر أيضا: ماذا يعني عندما يتم عرض النص كما الصناديق ؟

هل كانت مفيدة؟

المحلول

في ويندوز هناك 2 شيوعا عرض المشاكل التي تحدث عند محاولة عرض أحرف Unicode:

  1. النص أحيانا تظهر علامات استفهام

    • يحدث هذا عندما Unicode يتم تحويل البيانات إلى 8-بت ترميز مجموعة الأحرف (أو تقنيا أحرف متعددة البايت) عادة عن طريق نظام الشفرة (ولكن غيرها من صفحات التعليمات البرمجية يمكن أن تكون محددة في تحويل المكالمات).إذا كان الهدف 8 بت تعيين حرف لا تتضمن الأحرف المطلوبة ، أي الأحرف غير قابل للتمثيل في استهداف مجموعة الأحرف الحصول على تحويلها إلى علامات استفهام.
  2. النص في بعض الأحيان يظهر مربعات

    • هذه هي المشكلة مع الخط عدم وجود glpyh على حرف معين.مربعات تظهر عندما يكون هناك عدم تطابق بين أحرف Unicode في الوثيقة التي يدعمها الخط.على وجه التحديد, مربعات تمثل أحرف غير معتمدة من قبل الخط المحدد.

نصائح أخرى

وهذا يعني نص Unicode الخاص بك هو الحصول على تحويلها إلى نص ANSI في مكان ما. منذ أحرف Unicode خارج اللاتينية-1 لا يمكن تحويلها إلى ANSI، يتم تحويلها إلى علامات استفهام. تأكد من أن يتم ترجمة البرنامج مع دعم Unicode على (أي رموز المعالج UNICODE و_UNICODE و#defined من المشروع الخاص بك)، بحيث كنت تتصل دائما الإصدارات يونيكود المناسبة لمختلف وظائف ويندوز.

أساسا لديك تلف النص.كنت تأخذ نص Unicode في ترميز ثم حولت إلى ترميز آخر دون التحقق من أن الهدف ترميز يشمل جميع الشخصيات في النص المصدر.وقد فعلت ذلك كنت قد حصلت على مجموعة من الطلاسم.

الطرق للقيام بذلك ما يلي:

  1. علاج UTF-8 نص ANSI (دون تحويل إلى رمز صالح-الصفحة الأولى)
  2. تحويل نص Unicode إلى رمز-الصفحة دون التحقق إذا كان رمز-الصفحة الأحرف الصحيحة في ذلك.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top