将 byte[] 转换为 char[]

Posted

技术标签:

【中文标题】将 byte[] 转换为 char[]【英文标题】:Convert byte[] to char[] 【发布时间】:2011-07-22 19:22:08 【问题描述】:

如何在 C# 中将 byte 数组转换为 char 数组?

【问题讨论】:

你首先需要确定编码(如果你不知道的话)。 W3C's spec for html5 §8.2.2.2 提供了确定 HTML5 页面编码的步骤,但它包含一些可用于其他应用程序的步骤。 【参考方案1】:

你必须知道源编码。

string someText = "The quick brown fox jumps over the lazy dog.";
byte[] bytes = Encoding.Unicode.GetBytes(someText);
char[] chars = Encoding.Unicode.GetChars(bytes);

【讨论】:

【参考方案2】:
byte[] a = new byte[50];

char [] cArray= System.Text.Encoding.ASCII.GetString(a).ToCharArray();

来自 thedixon 发布的 URL

http://bytes.com/topic/c-sharp/answers/250261-byte-char

如果不先将字节转换为字符串,则不能 ToCharArray 。

引用 Jon Skeet 的话

这里不需要复制—— 只需使用 Encoding.GetChars。然而, 不能保证 ASCII 是 将是适当的编码 使用。

【讨论】:

【参考方案3】:
System.Text.Encoding.ChooseYourEncoding.GetString(bytes).ToCharArray();

替换上面的正确编码:例如

System.Text.Encoding.UTF8.GetString(bytes).ToCharArray();

【讨论】:

以上是关于将 byte[] 转换为 char[]的主要内容,如果未能解决你的问题,请参考以下文章

C#如何将string转为char[]

有没有合法的方法将 unsigned char 指针转换为 std::byte 指针?

JAVA byte到char的转换

如何在 C++ CLR 中将数组<System::Byte> 转换为 char*?

将字符串转换为 byte[] 创建零字符

如何将char数组转换为字节数组?