C#字符串ASCII表示

时间:2008-09-19 07:25:46

标签: c# regex string ascii

如何将ASCII特殊字符(例如ASCII值为0x01)插入字符串?

我问,因为我使用以下内容:

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

我觉得必须有比这更好的方法。任何想法?

更新

另外如果我使用这种方法,我是否需要担心unicode&amp; ASCII冲突?

3 个答案:

答案 0 :(得分:6)

我相信您可以使用\uXXXX在字符串中插入指定的代码。

ETA:我刚刚测试过它并且有效。 : - )

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

答案 1 :(得分:1)

  

另外如果我使用这种方法,我是否需要担心unicode&amp; ASCII冲突?

你的第一个问题是你的标签与ASCII发生冲突。一旦你到达TAG10,你将与0x0A:换行冲突。如果您确保永远不会超过九个标签,那么您应该是安全的。当字节值介于0和127之间时,Unicode编码(或者更确切地说:UTF8)与ASCII编码相同。它们仅在设置了顶部位时才有所不同。

答案 2 :(得分:1)

  

我觉得必须有更好的   比这个方式。任何想法?

看起来您正在尝试使用文本工具来操纵二进制块。例如,如果要插入字节0x01,则不再操纵文本,因为您不关心可能所代表的字节,因为它看起来像你不喜欢甚至不关心你将输出哪种编码。

更好的方法是将您正在操作的事物视为二进制数据块,这样可以轻松地插入位和字节,而无需使用脆弱的变通方法并担心副作用。