2008-09-19 132 views
2

如何將ASCII特殊字符(例如ASCII值0x01)插入字符串?C#字符串ASCII表示

我問,因爲我使用了以下內容:

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

,我覺得必須有比這更好的方式。有任何想法嗎?

更新:

而且如果我用這個方法,我需要擔心的unicode & ASCII衝突?

回答

6

我相信你可以使用\uXXXX插入指定的代碼到您的字符串。 ETA:我剛測試過它,它工作。 :-)

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

'\ u'後的十六進制值是否代表ASCII字符? – 2008-09-19 07:31:59

+0

它會,如果數字低於0x80。 – 2008-09-19 07:38:41

1

而且如果我用這個方法,我需要擔心的unicode & ASCII爭食?

你的第一個問題將是你的標籤用ASCII衝突。一旦你到達TAG10,你將與0x0A:換行衝突。如果你確保你永遠不會得到超過九個標籤,你應該是安全的。當字節值介於0和127之間時,Unicode編碼(或者更確切地說:UTF8)與ASCII編碼相同。它們僅在最高位被設置時纔有所不同。

1

我覺得必須有比這更好的方式。有任何想法嗎?

它看起來好像你試圖操作使用文字工具二進制塊。例如,如果你想插入字節0x01,那麼你就不再操縱文本了,因爲你不關心可能代表什麼字節,並且由於它看起來好像根本不在乎你使用哪種編碼正在輸出。

一個更好的辦法是把你作爲操縱數據的二進制塊,這將讓你輕鬆插入比特和字節的東西,不使用易碎的變通方法,並擔心副作用。