字符串转换为字节数组和字节数组转换为字符串?

8

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

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


3
这个问题的被接受答案有些误导人,这取决于运行时序列化输出的行为,而这种行为肯定不是跨语言兼容的。因此,我不会投票关闭它作为重复问题。使用适当的编码,比如UTF-8,是一个更好的方法。 - cdhowie
2
@cdhowie: 同意。"相当具有误导性"是一个委婉的说法。 :) - MusiGenesis
很可能这就是为什么下面有一个更好的回答,获得了更高的投票数。 - Steve Townsend
4个回答

21

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

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

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

8
在你开始使用别人提供的示例之前,你需要了解一件事情:一般来说,字符串和一串字节之间不存在唯一的映射关系。字符串与二进制之间的映射(反向亦然)是由所使用的编码方式决定的。编码方式。Joel Spolsky在这个主题上撰写了一篇精彩的文章
当解码二进制以获得字符串时,您需要使用与首次生成二进制代码相同的编码方式,否则会遇到问题。

3

1+ 链接到文档。 - dbJones


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接