Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在.Net字符串中写入ASCII特殊字符_.net_String_Ascii_Bytearray - Fatal编程技术网

如何在.Net字符串中写入ASCII特殊字符

如何在.Net字符串中写入ASCII特殊字符,.net,string,ascii,bytearray,.net,String,Ascii,Bytearray,假设我想在.Net字符串中使用ASCII特殊字符FS(0x1C),然后能够使用正确表示为单个字节的特殊字符从同一字符串格式化字节数组,我将如何做到这一点?我似乎无法理解它 感谢您提供的帮助。以下是如何将其嵌入字符串: "\x1C" 是该单个字符的字符串表示形式。假设您希望将其作为字节数组输出: byte[] bytes = Encoding.ASCII.GetBytes("\x1C"); string s = Encoding.ASCII.GetString(bytes); 如果要从字节数

假设我想在.Net字符串中使用ASCII特殊字符FS(0x1C),然后能够使用正确表示为单个字节的特殊字符从同一字符串格式化字节数组,我将如何做到这一点?我似乎无法理解它


感谢您提供的帮助。

以下是如何将其嵌入字符串:

"\x1C"
是该单个字符的字符串表示形式。假设您希望将其作为字节数组输出:

byte[] bytes = Encoding.ASCII.GetBytes("\x1C");
string s = Encoding.ASCII.GetString(bytes);
如果要从字节数组中获取字符串:

byte[] bytes = Encoding.ASCII.GetBytes("\x1C");
string s = Encoding.ASCII.GetString(bytes);

请注意,在编码名称空间中还有更多的编码,如UTF8,根据您的需要可能工作得更好-尽管从串行行读取可能需要纯ASCII。

您应该查看AscienceODing类 如果您想处理ASCII。Net字符串是unicode(UCS2)。如果需要特定的编码,则需要使用其中一个编码类


您可以通过将不可打印字符转义为“My string\x1c”来嵌入该字符。

这取决于串行端口数据格式的性质。如果数据主要由ASCII文本字符和偶尔的控制字符组成,则可以将它们嵌入字符串中,例如

var data1 = Encoding.ASCII.GetBytes("Foo\x1CBar\x1CBaz");
但是,如果数据包含多个不同数据类型的字段,则
位转换器
类可能更有用,例如:

var data2 = new List<byte>();
// Add an int value
data2.AddRange(BitConverter.GetBytes(6));
// Add a control character
data2.Add(0x1C);
// Add an ASCII-encoded string value
data2.AddRange(Encoding.ASCII.GetBytes("Hello"));
var data2=新列表();
//添加一个int值
data2.AddRange(BitConverter.GetBytes(6));
//添加一个控制字符
数据2.Add(0x1C);
//添加ASCII编码的字符串值
data2.AddRange(Encoding.ASCII.GetBytes(“Hello”);

正如其他人所指出的,ASCII不是您可以使用的唯一字符串编码,但从串行端口使用ASCII是最有可能的。

在回答您的问题之前,我想知道您为什么要尝试将字符串转换为字节数组。我正在编写一个函数,该函数将解析来自串行端口的字节数组,但我目前正在盲目工作,没有任何实际数据可供测试。由于我有显示格式的文档,我可以创建自己的数据,我只想将其作为.Net字符串写入,将其转换为字节数组,然后使用我的函数解析它。但也许有更好的办法。我也愿意接受这方面的建议。谢谢,BitConverter在我的情况下会很有用。第一个示例(data1)没有给出预期的结果\x1CBa被解释为一个unicode字符。