C# 如何将字符串解析为字节[]

C# 如何将字符串解析为字节[],c#,string,parsing,bytearray,C#,String,Parsing,Bytearray,我有一个c#中的字符串,其中包含以下内容 SMDR#0D#0APCCSMDR#0D#0A 现在根据我的要求,我需要用相同的格式将其解析为字节[]。我必须将字节[]显示为 SMDR#0D#0APCCSMDR#0D#0A 之所以需要此i,是因为my函数采用字节[]格式的参数,而我需要传递的值仅为 SMDR#0D#0APCCSMDR#0D#0A 如何实现这一点。我需要更改字符串格式或字节[]吗?我对您的问题感到困惑,但如果您需要将字符串表示为字节[],则可以使用LINQ: var output

我有一个c#中的字符串,其中包含以下内容

SMDR#0D#0APCCSMDR#0D#0A
现在根据我的要求,我需要用相同的格式将其解析为字节[]。我必须将字节[]显示为

SMDR#0D#0APCCSMDR#0D#0A
之所以需要此i,是因为my函数采用字节[]格式的参数,而我需要传递的值仅为

SMDR#0D#0APCCSMDR#0D#0A

如何实现这一点。我需要更改字符串格式或字节[]吗?

我对您的问题感到困惑,但如果您需要将字符串表示为
字节[]
,则可以使用LINQ:

var output = input.Select(x => (byte)x).ToArray();

你可以用下面的代码来做,我希望这能回答你的问题


试试这段代码

string str="SMDR#0D#0APCCSMDR#0D#0A";
byte[] bytes = new byte[str.Length * sizeof(char)];
System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
 foreach (var item in bytes)
        {
            Response.Write((char)item);
        }
欲了解更多信息,请阅读
好吧,希望这里有一个更具解释性的答案

获取字节在技术上并不依赖于编码,因为它只是内存。然而,解释字节序列并不重要。您正在调用的函数预期的编码是什么

如果需要原始ascii字节:

Encoding.ASCII.GetBytes("hello, 你是天才"); // 11 bytes. chinese truncated
如果需要UTF-8数据(1字节ascii,其他为2-4字节):

如果需要双倍宽度的字符(每个2字节,UCS-2):


等等。查看
System.Text.Encoding
类以了解更多详细信息和选项。

您能在问题中加入一些上下文吗?此函数需要如何操作字节[]?它需要理解什么文本?你在做很多假设什么假设?我会写同样的东西,而不是一个字符串=>linq=>数组,它会自动丢弃数据。假设现在就在那里。。。Encoding.Ascii。如果需要,请更改。如果字符不在ASCII范围内,这将自动放弃数据。如果这是需要的话,那当然。但是为什么不直接使用
Encoding.ASCII
Encoding.UTF8.GetBytes()
如何获取这行系统的输出。Buffer.BlockCopy(str.tocharray(),0,bytes,0,bytes.Length);放入字节[]array@AdiBlockCopy将字符串参数的所有字符复制到字节数组。
Encoding.ASCII.GetBytes("hello, 你是天才"); // 11 bytes. chinese truncated
Encoding.UTF8.GetBytes("hello, 你是天才"); // 19 bytes, as utf8 
Encoding.Unicode.GetBytes("hello, 你是天才") // 22 bytes