C# 将gb2312编码转换为字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 将gb2312编码转换为字符串相关的知识,希望对你有一定的参考价值。
比如001F0C0000000000000000000000000000000000000000000000000000000000000AC4E3BAC3 这是一串字符串的GB2312码 将其转换为对应的字符串
首先引用System.Text命名空间,然后看下面:将 gb2312 转换 utf8 编码
private void button1_Click(object sender, System.EventArgs e)
byte[] temp;
//将 textBox1.Text 转换为 byte 数组
temp = Encoding.Default.GetBytes(textBox1.Text);
//利用 Encoding 类的 Convert 方法,将 temp 的编码由 gb2312 转换为 big5 编码
temp = Encoding.Convert(Encoding.GetEncoding("gb2312"),Encoding.GetEncoding("utf8"),temp);
//将 byte 数组 转换为 string
textBox2.Text = Encoding.Default.GetString(temp);
参考技术A 1.将码放到byte数组中
2.
string str=System.Text.Encoding.GetEncoding("gb2312").GetString(byte数组名);追问
Encoding.GetEncoding("GB2312").GetBytes() 与Encoding.GetEncoding("gb2312").GetString()一个是解码 一个是转换为GB2312是吗
追答如果你非要说成解码的话也行....就是一种转换
本回答被提问者采纳在 C# 中有效地将字符串转换为字节数组(不使用编码)[重复]
【中文标题】在 C# 中有效地将字符串转换为字节数组(不使用编码)[重复]【英文标题】:Efficiently converting a string to a byte array in C# (Not with Encoding) [duplicate] 【发布时间】:2018-09-13 02:03:03 【问题描述】:如何在不对每个元素使用Convert.ToByte()
的情况下将字符串"0100"
转换为byte
数组0,1,0,0
?该字符串只能包含字符 0 到 9。
【问题讨论】:
以下链接应该会有所帮助 1) ***.com/questions/16072709/… 2) ***.com/questions/30545162/… 3) ***.com/questions/6254003/… 4) rextester.com/discussion/HHSUSW47299/… 您是假设字符串中的字符始终是 0-9 范围内的数字,还是始终采用 8 位字符集? @atur 我说不是编码,示例 A 变成 65。字节中只有 0 变成 0。 @JimMischel 是的,对不起,我会编辑这个。 @JP_99 : 几个链接没有编码。此外,查看所有答案,而不仅仅是接受的答案 【参考方案1】:使用 linq
var bytes = "0100".Select(x => (byte)(x - '0')).ToArray();
【讨论】:
bytes
的类型是什么?
我认为这将为您提供int
的数组。如果需要字节数组,则需要将 x - '0'
转换为 byte
。
@EricLippert 你是对的 :)以上是关于C# 将gb2312编码转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章
怎样将GB2312编码的字符串转换为ISO-8859-1编码的字符串?