一个GB2312编码的字节数组被UTF8.GetString()方法后,如何还原为原始的GB2312字节数组

taia 2007-10-23 09:08:22
一个GB2312编码的字节byte[] bs = new byte[] { 0xd6, 0xd0, 0xb9, 0xfa, 0xc8, 0xcb };
string strGB= GB2312.GetString(bs); //这个字符串的内容为"中国人"
string strUTF8=utf8.GetBytes(ss)); //字符串是乱码,但是如何用strUTF8来还原到原始的字节数组bs呢数组被UTF8.GetString()方法后,如何还原为原始的GB2312字节数组
...全文
193 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyun1987 2007-10-23
  • 打赏
  • 举报
回复
string str = "我们的家";
byte[] bytes = Encoding.Default.GetBytes(str);
byte[] newBytes = new byte[bytes.Length];
int j = 0;
for (int k = 0; k < strBytes.Length; )
{
string a = strBytes.Substring(k, 8);
newBytes[j] = Convert.ToByte(a, 2);
k = k + 8;
j++;
}
string b = Encoding.Default.GetString(newBytes);
这样可以把二进制的字符数据还原为原来的中文。。。
taia 2007-10-23
  • 打赏
  • 举报
回复
楼上的兄弟可能没看清楚题目

现在是用strUTF8(注意,此时的字符串已经是乱码)来还原成原始的字节数组(而不是字节转成字符串)
ETstudio 2007-10-23
  • 打赏
  • 举报
回复
byte[] bs = new byte[] { 0xd6, 0xd0, 0xb9, 0xfa, 0xc8, 0xcb };

string strGB = System.Text.Encoding.UTF8.GetString(System.Text.Encoding.Convert(Encoding.GetEncoding("GB2312"), Encoding.UTF8, bs)); // GB2312.GetString(bs); //这个字符串的内容为"中国人"
MessageBox.Show(strGB);
资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 在计算机领域,数据的存储和传输常常需要在字节数组(byte[])与字符串(String)之间进行转换。字节是计算机存储数据的基本单位,由8个比特组成,而比特只有0和1两种状态,分别表示有脉冲或无脉冲。字节的取值范围是0到255,这些值可以通过不同的编码方式来表示字符。 在早期的计算机系统中,ASCII编码被广泛使用,它用7位二进制数来表示字符。然而,随着计算机技术的发展,为了支持更多语言(如中文),人们设计了如GB2312和Big5等编码方式。这些编码方式允许将字符转换为字节数组,反之亦然。这种转换实际上是将现实世界中的信息(如文本)转换为计算机能够理解的数字形式,而不同的编码方式会导致不同的转换结果。 在C#中,System.Text.Encoding类被用来管理各种编码方式。它提供了多种编码方式,如UTF-8、UTF-16和ASCII等。通过这个类,我们可以方便地在字符串和字节数组之间进行转换。 下面是一个简单的代码示例,展示如何在C#中实现字符串和字节数组之间的转换: 在这个代码中,我们首先定义了一个包含英文和中文字符的字符串。然后,我们使用Encoding.UTF8.GetBytes方法将字符串转换为字节数组,并打印出字节数组的内容。接着,我们使用Encoding.UTF8.GetString方法字节数组重新转换为字符串,并验证转换是否正确。 通过这种方式,我们可以灵活地在字符串和字节数组之间进行转换,从而满足各种编程需求。

62,248

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧