العلاقة بين ترميز NET و Characterset
-
06-07-2019 - |
سؤال
ما العلاقة بين CharacterSet هنا:
http://msdn.microsoft.com/en-us /library/ms709353(VS.85).aspx
وأسكي الترميز هنا:
http://msdn.microsoft كوم / EN-US / مكتبة / system.text.asciiencoding.getbytes (VS.71) .aspx اتصال
المحلول
وANSI هي الصفحة الرموز Windows ANSI الحالية، أي ما يعادل Encoding.Default.
وOEM هو الشفرة OEM الحالية التي تستخدم عادة من قبل تطبيقات وحدة التحكم.
ويمكنك الحصول على هذه باستخدام:
Encoding.GetEncoding(CultureInfo.CurrentCulture.TextInfo.OEMCodePage)
في تطبيق وحدة التحكم، سوف يكون ترميز OEM متاح أيضا باستخدام
Console.OutputEncoding
نصائح أخرى
وهذا هو حقا، حقا القديم. ODBC تعود إلى العصر الحجري، والعودة عند بدء تشغيل Windows خلفا لMS-DOS. في ذلك الوقت، الكثير من النص ما زال ترميز في مجموعة الأحرف IBM-PC الأصلي، واسمه "مجموعة الأحرف تصنيع المعدات الأصلية" من قبل Microsoft. وكان مجموعة IBM-PC القياسية بعض الأحرف المحركة ورموزا الرسومات الزائفة في النصف العلوي، رموز 0x80-0xff.
ومحدودة جدا لإخراج النص بلغات غير الإنجليزية، التي Microsoft باستخدام صفحات الرموز، نطاقات الطابع رموزا مناسبة لمجموعة لغوية معينة. مجموعة اللغة الإنجليزية الأمريكية من الشخصيات وموحدة من قبل ANSI، والآن تعلق تلك التسمية (غير صحيح) إلى أي غير OEM الشفرة.
لا أحد بترميز النص في شخصية OEM وضع بعد الآن، وذهب في طريق طائر الدودو قبل 10 سنوات على الأقل. الإعداد الصحيح هنا هو ANSI. والحفاظ على أصابعك عبرت وراء ظهرك أن صفحة الرموز المستخدمة لتشفير النص مباريات صفحة الرموز الافتراضية النظام الخاص بك. هذا دودو جدا، يونيكود حلها.
والإجابة المختصرة على سؤالك، وليس هناك علاقة مباشرة.
وكلما طال نسخة:
CharacterSet
لملف "Schema.ini" يمكن أن تكون إما ANSI
أو OEM
.
ANSI و ASCII تشير إلى شيء مختلف.
ويمكنك قراءة المزيد من هنا:
فهم ASCII وأحرف ANSI
ASCII مقابل ترميز ANSI اليكس هوفمان
ومن فهمي، CharacterSet = ANSI ما يعادل <لأ href = "http://msdn.microsoft.com/en-us/library/system.text.encoding.default(VS.71).aspx" يختلط = "noreferrer نوفولو"> Encoding.Default . OEM يمكن ASCIIEncoding ذلك الحين.
ومع ذلك، يستخدم ANSI صفحة الرموز نظام ANSI، لذلك قد تنشأ عدم التوافق إذا تم الوصول إلى الملف نفسه من أجهزة الكمبيوتر مع صفحات الرموز مختلفة.
ولقد قمت بتجميع إشارة بلدي من أجل التبديل بين اثنين:
Windows code page Name System.Text.Encoding schema.ini CharacterSet 20127 ASCII (US) ASCII 20127 1252 ANSI Latin I Default ANSI 65001 UTF-8 UTF8 65001 1200 UTF-16 LE Unicode Unicode 1201 UTF-16 BE BigEndianUnicode 1201