如何將ASCII特殊字符(例如ASCII值0x01)插入字符串?C#字符串ASCII表示
我問,因爲我使用了以下內容:
str.Replace("<TAG1>", Convert.ToChar(0x01).ToString());
,我覺得必須有比這更好的方式。有任何想法嗎?
更新:
而且如果我用這個方法,我需要擔心的unicode & ASCII衝突?
如何將ASCII特殊字符(例如ASCII值0x01)插入字符串?C#字符串ASCII表示
我問,因爲我使用了以下內容:
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:換行衝突。如果你確保你永遠不會得到超過九個標籤,你應該是安全的。當字節值介於0和127之間時,Unicode編碼(或者更確切地說:UTF8)與ASCII編碼相同。它們僅在最高位被設置時纔有所不同。
我覺得必須有比這更好的方式。有任何想法嗎?
它看起來好像你試圖操作使用文字工具二進制塊。例如,如果你想插入字節0x01
,那麼你就不再操縱文本了,因爲你不關心可能代表什麼字節,並且由於它看起來好像根本不在乎你使用哪種編碼正在輸出。
一個更好的辦法是把你作爲操縱數據的二進制塊,這將讓你輕鬆插入比特和字節的東西,不使用易碎的變通方法,並擔心副作用。
'\ u'後的十六進制值是否代表ASCII字符? – 2008-09-19 07:31:59
它會,如果數字低於0x80。 – 2008-09-19 07:38:41