2

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

我问是因为我正在使用以下内容:

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

而且我觉得一定有比这更好的方法。有任何想法吗?

更新:

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

4

3 回答 3

6

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

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

using System;
class Uxxxx {
    public static void Main() {
        Console.WriteLine("\u20AC");
    }
}
于 2008-09-19T07:27:33.150 回答
1

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

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

于 2008-09-19T07:42:52.503 回答
1

而且我觉得一定有比这更好的方法。有任何想法吗?

看起来好像您正在尝试使用文本工具来操作二进制块。例如,如果您想插入 byte 0x01,则不再处理文本,因为您不关心该 byte可能代表什么,而且看起来您甚至不关心您将输出哪种编码。

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

于 2009-07-24T08:20:47.497 回答