سؤال

يعرض تطبيقي الأحرف الإنجليزية واليابانية والصينية على مربع نص و LinkLabel. حاليًا ، أتحقق مما إذا كانت هناك أحرف Unicode وأغير الخط إلى MS Mincho أو اتركه في Tahoma.

الآن تعرض Ms Mincho اليابانية بشكل صحيح ، لكن بالنسبة للصينيين يجب أن أستخدم Sim Sun. كيف يمكنني التمييز بين الاثنين؟

كيف يمكنني التأكد من عرض نص Unicode بشكل صحيح بغض النظر عن الخط/اللغة؟

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

المحلول

إذا كان لديك أحرف Unicode لكل نص من النص ، فإن استخدام الخط الذي يدعم Unicode يجب أن يغطيه بشكل صحيح لك (على سبيل المثال unicode MS).

نصائح أخرى

لا يمكنك التأكد من عرض نص Unicode بشكل صحيح بغض النظر عن الخط واللغة ، لأن لا يوجد خط واحد يمكن أن يجعل جميع أحرف Unicode ممكنة. يجب عليك تحديد خط يمكنه عرض أحرف Unicode التي تحتاج إلى تقديمها.

جميع الأوتار في C# هي Unicode. تقع نقاط الكود الإنجليزية (اللاتينية) واليابانية والصينية فقط في نطاقات نقاط الكود المختلفة.

أعتقد أن لديك خياران:

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

  • حاول تخمين اللغة واختيار الخط الذي يحتوي على أحرف نقاط الكود في تلك اللغة.

للخيار 2 يمكنك النظر إلى مخططات Unicode لمعرفة مكان وجود نقاط الكود المختلفة وتوسيع الخوارزمية لتخمين اللغة.

مثال على هيراجانا:

bool IsHiragana(char ch)
{
    return (ch >= '\u3040') && (ch <= '\u309f');
}

bool IsHiragana(string s)
{
    return s.Count(IsHiragana) > 0;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top