سؤال

وعلى سبيل المثال: "½" أو ASCII ديسمبر 189. عندما قرأت بايت من نص ملف البايت [] يحتوي على قيمة صالحة، في هذه الحالة 189.

وتحويل النتائج إلى Unicode في حرف استبدال Unicode 65533.

<اقتباس فقرة>   

وUnicodeEncoding.Unicode.GetString (ب)؛

وتحويل النتائج إلى ASCII في 63 أو "؟"

<اقتباس فقرة>   

وASCIIEncoding.ASCII.GetString (ب)؛

إذا لم يكن ذلك ممكنا ما هي أفضل طريقة للتعامل مع هذه البيانات؟ أود أن تكون قادرة على أداء وظائف سلسلة مثل استبدال ().

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

المحلول

بايت 189 يمثل "½" في ISO-8859-1 (ويعرف أيضا باسم "اللاتينية-1")، وبالتالي فإن التالي هو ربما ما تريد:

var e = Encoding.GetEncoding("iso-8859-1");
var s = e.GetString(new byte[] { 189 });

وجميع سلاسل وحرف في. NET هي-UTF 16 المشفرة، لذلك تحتاج إلى استخدام التشفير / فك لتحويل أي شيء آخر، وأحيانا هذا ما تخلفت (مثل UTF-8 حالات يقوم FileStream) ولكن الممارسة الجيدة لتحديد دائما .

وسوف تحتاج شكلا من أشكال ضمنية أو (أفضل) الفوقية واضح على توريد لكم مع معلومات حول الترميز.

نصائح أخرى

وهذا يعتمد على بالضبط ما هو الترميز.

وليس هناك شيء مثل "ASCII 189" - ASCII يذهب فقط ما يصل الى 127. وهناك العديد من ترميزات فيه 8 بت ترميزات باستخدام ASCII عن القيم 128 الأولى

.

أنت <م> قد تريد Encoding.Default (والذي هو الترميز الافتراضي لنظام خاص بك)، ولكن من الصعب أن نعرف على وجه اليقين. أين البيانات تأتي من؟

وكان PC-8 أو الموسعة مجموعة أحرف ASCII القديم قبل حوالي طرحت شركة IBM ومايكروسوفت فكرة مدونة صفحات للعالم PC. هذا وتم تمديد ASCII - في عام 1982. وفي الواقع، كان الطابع فقط تعيين متوفرة على أجهزة الكمبيوتر الشخصية في ذلك الوقت، حتى سمحت بطاقة EGA لك لتحميل الخطوط الأخرى في لVRAM

.

وكان هذا أيضا معيار الافتراضي لمحطات ANSI، وتقريبا كل BBS I طلبه حتى في ال 80 وأوائل 90 تستخدم هذه مجموعة الأحرف لعرض القوائم ومربعات.

وهنا رمز لتحويل 8 بت ASCII الموسعة في لنص Unicode. لاحظ شيئا أساسيا من التعليمات البرمجية: وGetEncoding ( "437"). أن تستخدم الشفرة 437 لترجمة نص ASCII 8 بت إلى ما يعادل يونيكود.

    string ASCII8ToString(byte[] ASCIIData)
    {
        var e = Encoding.GetEncoding("437");
        return e.GetString(ASCIIData);
    }

وSystem.String[] لا يمكن تخزين الأحرف مع ASCII > 127 إذا كنت تحاول العمل على أية أحرف ASCII الموسعة مثل œ ¢ ½ ¾ هنا هي طريقة لتحويله إلى هم ثنائي وعشري أي ما يعادل

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