2008-09-19 80 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,那么你就不再操纵文本了,因为你不关心可能代表什么字节,并且由于它看起来好像根本不在乎你使用哪种编码正在输出。

一个更好的办法是把你作为操纵数据的二进制块,这将让你轻松插入比特和字节的东西,不使用易碎的变通方法,并担心副作用。