C# :Encoding,string编码完成后就是一个二进制数组,由有序逻辑继续处理或者传输。
常用编码:
string转换为byte[]
byte[] by = Encoding.Default.GetBytes("我们"); //获取操作系统的当前 ANSI 代码页的编码
//byte[]转成string
string str = Encoding.Default.GetString(by);
//string转换为ANSI byte[]
byte[] by = Encoding.ASCII.GetBytes("我们"); //获取 ASCII(7 位)字符集的编码
//ASCII byte[]转成string
string str = Encoding.ASCII.GetString(by);
//string转换为UTF8 byte[]
byte[] by = Encoding.UTF8.GetBytes("我们"); //获取 UTF-8 格式的编码
//UTF8 byte[]转成string
string str = Encoding.UTF8.GetString(by);
//string转换为Unicode byte[]
byte[] by = Encoding.Unicode.GetBytes("我们"); //获取使用 Little-Endian 字节顺序的 UTF-16 格式的编码
//Unicode byte[]转成string
string str = Encoding.Unicode.GetString(by);
小众编码:如gb2312
EncodingInfo[] ei = Encoding.GetEncodings();
foreach (EncodingInfo i in ei)
{
textBox1.Text += i.CodePage.ToString() + ";" + i.Name + "\r\n";
}
//936;gb2312
//950;big5
Encoding gb2312 = Encoding.GetEncoding("gb2312");
byte[] gb = gb2312.GetBytes("我们");
string str = gb2312.GetString(gb);
两种编码间相互转换:
byte[] ascii = Encoding.ASCII.GetBytes("我们");
byte[] utf8 = Encoding.Convert(Encoding.ASCII, Encoding.UTF8, ascii);
string str = Encoding.UTF8.GetString(utf8);
扩展阅读:
https://www.cnblogs.com/GreenLeaves/p/7152781.html