繁体   English   中英

用于从字符串转换为字节的内置函数

[英]A Built-in Function to Convert from String to Byte

我有以下功能:

public static byte[] StringToByte(string str)
{
    int length = str.Length;
    byte[] ba = new byte[length];
    for (int i = 0; i < length; i++)
    {           
        ba[i] = (byte)str[i];
    }
    return ba;
}

我想知道这个方法是否有内置函数?

System.Text.Encoding.GetBytes(string)
System.Text.ASCIIEncoding  encoding=new System.Text.ASCIIEncoding();
byte[] bytes= encoding.GetBytes(stringData);

不行。 真的 - 你的rappraoch坏了。 您假设低位字节是您需要的字节。 你试图实现吗? 字符串的ASCII表示? 什么代码页?

请查看以下页面:

http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx

使用其中提到的类之一,可能是ASCIIEncoding类。

.NET Framework提供了Encoding类的以下实现,以支持当前的Unicode编码和其他编码:

.NET Framework提供了Encoding类的以下实现,以支持当前的Unicode编码和其他编码:

  • ASCIIEncoding将Unicode字符编码为单个7位ASCII字符。 此编码仅支持U + 0000和U + 007F之间的字符值。 代码页20127.也可通过ASCII属性获得。
  • UTF7Encoding使用UTF-7编码对Unicode字符进行编码。 此编码支持所有Unicode字符值。 代码页65000.也可通过UTF7属性获得。
  • UTF8Encoding使用UTF-8编码对Unicode字符进行编码。 此编码支持所有Unicode字符值。 代码页65001.也可通过UTF8属性获得。
  • UnicodeEncoding使用UTF-16编码对Unicode字符进行编码。 支持小端(代码页1200)和大端(代码页1201)字节顺序。 也可通过Unicode属性和BigEndianUnicode属性获得。
  • UTF32Encoding使用UTF-32编码对Unicode字符进行编码。 支持小端(代码页12000)和大端(代码页12001)字节顺序。 也可通过UTF32属性获得.ASCIIEncoding将Unicode字符编码为单个7位ASCII字符。 此编码仅支持U + 0000和U + 007F之间的字符值。 代码页20127.也可通过ASCII属性获得。
  • UTF7Encoding使用UTF-7编码对Unicode字符进行编码。 此编码支持所有Unicode字符值。 代码页65000.也可通过UTF7属性获得。
  • UTF8Encoding使用UTF-8编码对Unicode字符进行编码。 此编码支持所有Unicode字符值。 代码页65001.也可通过UTF8属性获得。
  • UnicodeEncoding使用UTF-16编码对Unicode字符进行编码。 支持小端(代码页1200)和大端(代码页1201)字节顺序。 也可通过Unicode属性和BigEndianUnicode属性获得。
  • UTF32Encoding使用UTF-32编码对Unicode字符进行编码。 支持小端(代码页12000)和大端(代码页12001)字节顺序。 也可通过UTF32属性获得。

有。 它是Encoding.GetBytes

确切地说,并举例说明:

public static byte[] StrToByteArray(string str) {
    System.Text.ASCIIEncoding  encoding = new System.Text.ASCIIEncoding();
    return encoding.GetBytes(str);
}

将ASCIIEncoding替换为您要使用的编码。

string s = "Like this";
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
byte[] b = enc.GetBytes(s);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM