سؤال

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

(لا أفهم تمامًا القضايا ، لذا سأكون ممتنًا للتعليم الأساسي في هذه الترميزات).

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

المحلول

أدوات الترميز الثابت للرمز صفحة 1252 على Windows جداً من غير المرجح. على الأرجح هو أنه يحدث أن تكون صفحة التعليمات البرمجية الافتراضية على جهازك. يستخدم 1252 في أوروبا الغربية والأمريكتين. تم تكوينه في لوحة التحكم والخيارات الإقليمية واللغوية. لقد استخدموا أسماء مختلفة لذلك ، على Win7 ، في علامة التبويب الإدارية ، تغيير نظام النظام.

نعم ، تستخدم العديد من الأدوات صفحة التعليمات البرمجية الافتراضية ما لم يكن لديها سبب وجيه لاختيار ترميز آخر. بوم هذا سبب وجيه. أمثلة ملحوظة هي المفكرة (ما لم تقم بتغيير الترميز في مربع الحوار+ Open Open إلى شيء آخر غير ANSI) و C/C ++. عادة لا يوجد أي شيء مميز تحتاج إلى القيام به لاستخدام صفحة التعليمات البرمجية الافتراضية. من المستحيل تخمين صفحة التعليمات البرمجية الصحيحة لملف نصي عندما لا يكون لديك BOM بدقة. جوجل "بوش أخفى الحقائق" لقصة حرب مسلية للغاية.

نصائح أخرى

ست سنوات وما زالت ذات صلة: الحد الأدنى المطلق لكل مطور برامج على الإطلاق ، ويجب أن يعرف بشكل إيجابي عن مجموعات Unicode والمجموعات الشخصية (بدون أعذار!)

الآن ، حول سؤالك: نعم ، لا تزال هناك أدوات تختنق على ملفات UTF-8. ولكن المزيد والمزيد من الأدوات هي "الحصول عليها". إذا كنت تقوم بتطوير أغراضك الخاصة ، فقد ترغب في النظر إلى Python 3 حيث تكون جميع الأوتار أحادية. تتمثل الفلسفة في تحويل جميع مدخلاتك إلى Unicode (إذا لزم الأمر) في أقرب وقت ممكن ، وإعادة تعزيزها إلى ترميز مستهدف في وقت متأخر قدر الإمكان. هناك مجموعات أدوات ستقوم بعمل جيد لتخمين ترميز ملف معين (على سبيل المثال ، مارك الحاجشارديت, ، ميناء كاشف ترميز موزيلا). هذا لطيف إذا كنت تعمل مع الملفات التي لا تحدد تشفيرًا.

CP1252 و UTF-8 هي نفسها لجميع الأحرف <128. وهي تختلف فوق ذلك. لذلك إذا التزمت باللغة الإنجليزية وابتعدت عن العلامات التشريمية ، فستكون هذه هي نفسها.

ستستخدم معظم أدوات Windows كل ما يتم تعيينه كـ CodePage الحالي للمستخدم الحالي ، والذي سيؤدي إلى 1252 لـ Windows. يمكنك تغيير ذلك إلى codepage آخر بسهولة تامة. لكن UTF-8 ليس أحد خيارات CodePage المتاحة لنظام التشغيل Windows. (أتمنى لو كان).

ستفهم بعض المرافق تحت Windows UTF-8 بايت مارك في بداية ملف. لسوء الحظ ، لا أعرف كيفية تحديد ما إذا كان هذا سيعمل باستثناء تجربته.

UTF-8 مدعوم على Windows ولكن ليس كما تيار codepage. يمكنك استخدام UTF-8 للتحويل إلى/منه ولكن لا يمكنك ضبطها كـ codepage الحالي.

أولاً ، لا تحاول أن تضيع الوقت عن طريق تعيين Codepage - سيذكرك هذا النهج بأسطورة Sisyphus - لا يمكنك حقًا حل المشكلة باستخدام CodePages ، يجب عليك استخدام Unicode.

الحل الحقيقي الوحيد لك هو قم ببناء التطبيق الخاص بك كوحدة يونيكود بحيث يستخدم UTF-16 ولتحويل إلى/من UTF-8 على العمليات داخل/خارج. يتم ذلك بسيطًا جدًا لأن FOPEN يدعم القراءة أو الكتابة UTF-8.

فيما يتعلق باستخدام أدوات Windows الأخرى مع ملف UTF-8 ، يجب ألا تكون على دراية لأنه إذا كانت الأداة قادرة على العمل مع ASCII ، فستعمل مع UTF-8 (على الرغم من أنها قد لا تكون قادرة على التمييز بين chars Unicode ولكن في على الأقل سيكون قادرًا على تحميل/تحليل الملفات).

راجع للشغل ، لقد نسيت تحديد لغة البرمجة التي تستخدمها وما هي أدوات Windows التي تفكر في الاستخدام.

أيضًا ، إذا كنت مهتمًا بمزيد من الأشياء التدويل ، فيرجى زيارة بلدي blog.i18n.ro

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