C# String ASCII التمثيل
سؤال
كيف يمكنني إدراج 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
, على سبيل المثال كنت لا التعامل مع النص بعد الآن, منذ كنت لا تهتم ما الذي بايت قد تمثل, و يبدو أنك لا تهتم حتى الذي ترميز سوف يكون إخراج.
سيكون أفضل طريقة لعلاج شيء أنت التلاعب الثنائية قطعة من البيانات ، والتي من شأنها أن تتيح لك إدراج بت وبايت بسهولة دون استخدام هشة الحلول الحاجة إلى القلق حول الآثار الجانبية.