在C#中将字符串转换为字节数组

我对C#很陌生。 我正在从VB转换成C#。 这个语句的语法有问题:

if ((searchResult.Properties["user"].Count > 0))
{
    profile.User = System.Text.Encoding.UTF8.GetString(searchResult.Properties["user"][0]);
}

然后我看到以下错误:

参数1:不能从'object'转换为'byte []'

'System.Text.Encoding.GetString(byte [])'的最佳重载方法匹配有一些无效参数

我试图修复基于这篇文章的代码,但仍然没有成功

string User = Encoding.UTF8.GetString("user", 0);

有什么建议么?


如果您已经有了一个字节数组,那么您将需要知道使用哪种类型的编码将其编入该字节数组中。

例如,如果字节数组是这样创建的:

byte[] bytes = Encoding.ASCII.GetBytes(someString);

您需要将其重新转换为如下所示的字符串:

string someString = Encoding.ASCII.GetString(bytes);

如果您可以在您继承的代码中找到用于创建字节数组的编码,那么您应该设置它。


首先,添加System.Text命名空间

using System.Text;

然后使用这个代码

string input = "some text"; 
byte[] array = Encoding.ASCII.GetBytes(input);

希望解决它!


您也可以使用扩展方法将方法添加到string类型,如下所示:

static class Helper
{
   public static byte[] ToByteArray(this string str)
   {
      return System.Text.Encoding.ASCII.GetBytes(str);
   }
}

并像下面一样使用它:

string foo = "bla bla";
byte[] result = foo.ToByteArray();
链接地址: http://www.djcxy.com/p/15889.html

上一篇: Converting string to byte array in C#

下一篇: Cannot convert from int to system.collections.generic.icomparer<int>