一个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字节数组
...全文
186 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);

62,244

社区成员

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

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

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

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