如何将 ASCII 特殊字符(例如 ASCII 值 0x01)插入字符串?
我问是因为我正在使用以下内容:
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 编码相同。它们仅在设置最高位时有所不同。
而且我觉得一定有比这更好的方法。有任何想法吗?
看起来好像您正在尝试使用文本工具来操作二进制块。例如,如果您想插入 byte 0x01
,则不再处理文本,因为您不关心该 byte可能代表什么,而且看起来您甚至不关心您将输出哪种编码。
更好的方法是将您正在操作的东西视为二进制数据块,这样您就可以轻松插入位和字节,而无需使用脆弱的解决方法并担心副作用。