【问题标题】:String to byte[] and vice versa? [duplicate]字符串到字节[],反之亦然? [复制]
【发布时间】:2011-05-18 03:35:42
【问题描述】:

可能重复:
.NET String to byte Array C#

如何将 String 转换为 byte[] 数组,反之亦然?我需要将字符串存储在一些二进制存储中。请在两个方向显示示例。还有一件事:每个字符串可能大于 90Kb。

【问题讨论】:

  • 该问题有一个相当误导的公认答案,具体取决于运行时序列化输出的行为,这肯定不是跨语言兼容的。因此,我不会投票关闭作为副本。使用适当的编码,如 UTF-8,是一种更好的方法。
  • @cdhowie:同意。 “相当误导”是一种礼貌的表达方式。 :)
  • 大概这就是为什么下面有更高票数的更好答案的原因。

标签: c# string binary copy


【解决方案1】:

如果你想使用 UTF-8 编码:

// string to byte[]
byte[] bytes = Encoding.UTF8.GetBytes(someString);

// byte[] to string
string anotherString = Encoding.UTF8.GetString(bytes);

【讨论】:

    【解决方案2】:

    在您开始使用某人已经给出的示例之前,您应该知道,通常,字符串和字节序列之间没有唯一的映射。字符串如何映射到二进制(反之亦然)由您使用的encoding 决定。 Joel Spolsky 就此主题写了一封awesome article

    当解码二进制以获取字符串时,您需要使用与最初生成二进制时相同的编码,否则会遇到问题。

    【讨论】:

      【解决方案3】:

      使用Encoding 类。

      【讨论】:

      • 1+ 用于链接到文档
      【解决方案4】:
      猜你喜欢
      • 2012-03-06
      • 1970-01-01
      • 2011-07-02
      • 2014-04-16
      • 2011-02-03
      • 2015-12-09
      • 2014-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多