سؤال

كيف يمكنني إدراج ASCII أحرف خاصة (مثلمع قيمة ASCII 0x01) في سلسلة ؟

أنا أسأل لأنني باستخدام التالية:

str.Replace( "<TAG1>", Convert.ToChar(0x01).ToString() );

وأشعر أنه يجب أن يكون هناك طريقة أفضل من هذا.أي أفكار ؟

تحديث:

أيضا إذا كنت تستخدم هذه المنهجية ، لا داعي للقلق حول unicode & ASCII تشتبك?

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

المحلول

أعتقد يمكنك استخدام \uXXXX لإدراج المحدد رموز في سلسلة الخاص بك.

ETA:لقد اختبرت ذلك.:-)

using System;
class Uxxxx {
    public static void Main() {
        Console.WriteLine("\u20AC");
    }
}

نصائح أخرى

أيضا إذا كنت تستخدم هذه المنهجية ، لا داعي للقلق حول unicode & ASCII تشتبك?

المشكلة الأولى سوف تكون العلامات الخاصة بك تشتبك مع ASCII.تحصل مرة واحدة إلى TAG10 ، سوف اشتباك مع 0x0A:خط تغذية.إذا عليك التأكد من أنك لن تحصل على أكثر من تسعة العلامات, يجب أن تكون آمنة.Unicode-الترميز (أو بالأحرى:UTF8) مطابق ASCII-ترميز عندما بايت-القيم بين 0 و 127.إلا أنها تختلف عند أعلى-تعيين بت.

وأشعر أنه يجب أن يكون هناك أفضل من هذا.أي أفكار ؟

يبدو كما لو كنت تحاول التلاعب الثنائية قطعة النصية باستخدام أدوات.إذا كنت ترغب في إدراج بايت 0x01, على سبيل المثال كنت لا التعامل مع النص بعد الآن, منذ كنت لا تهتم ما الذي بايت قد تمثل, و يبدو أنك لا تهتم حتى الذي ترميز سوف يكون إخراج.

سيكون أفضل طريقة لعلاج شيء أنت التلاعب الثنائية قطعة من البيانات ، والتي من شأنها أن تتيح لك إدراج بت وبايت بسهولة دون استخدام هشة الحلول الحاجة إلى القلق حول الآثار الجانبية.

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