本文共 4675 字,大约阅读时间需要 15 分钟。
???????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????
1980??????????????????????GB2312-80?????????????????????GB18030-2000????????????????????????GB2312-1980?GB13000-1993?????????????????????????????GB18030?????Windows?????????????????????????????GB2312?????????????????????????????????????????????GB2312?????????????????????????????????????????????????????
??????????????????????????????????????????????????GB2312???????????????????ba c3???ba?????c3?????????????????????15??AF??????????????????????16??B0???????GB2312?????????
?.NET??????????????System.Text??????Encoding???????????????????????????????Encoding.GetBytes()????????????????Encoding.GetString()??????????????????????GB2312?????????????????????
using System;using System.Text;namespace ConsoleApplication{ class ChineseCode { public static object[] CreateRegionCode(int strlength) { string[] rBase = new string[16]; Random rnd = new Random((DateTime.Now.Ticks) + i); object[] bytes = new object[strlength]; for (int i = 0; i < strlength; i++) { int r1 = rnd.Next(11, 14); string str_r1 = rBase[r1].Trim(); int r2 = rnd.Next(0, 7); if (r1 == 13) { r2 = rnd.Next(0, 16); } else if (r1 == 15) { r2 = rnd.Next(0, 16); } else { r2 = rnd.Next(0, 16); } string str_r2 = rBase[r2].Trim(); byte byte1 = Convert.ToByte(str_r1 + str_r2, 16); byte byte2 = Convert.ToByte(str_r3 + str_r4, 16); byte[] str_r = new byte[] { byte1, byte2 }; bytes.SetValue(str_r, i); } return bytes; } public static void Main() { Encoding gb = Encoding.GetEncoding("gb2312"); object[] bytes = CreateRegionCode(4); string str1 = gb.GetString((byte[])Convert.ChangeType(bytes[0], typeof(byte[]))); string str2 = gb.GetString((byte[])Convert.ChangeType(bytes[1], typeof(byte[]))); string str3 = gb.GetString((byte[])Convert.ChangeType(bytes[2], typeof(byte[]))); string str4 = gb.GetString((byte[])Convert.ChangeType(bytes[3], typeof(byte[]))); Console.WriteLine(str1 + str2 + str3 + str4); } }} ??????????????????????????????GetString()???????????????????????????????????????????
?????????C#????????
using System;using System.Text;namespace ConsoleApplication{ class ChineseCode { public static object[] CreateRegionCode(int strlength) { string[] rBase = new string[16]; Random rnd = new Random((DateTime.Now.Ticks) + i); object[] bytes = new object[strlength]; for (int i = 0; i < strlength; i++) { int r1 = rnd.Next(11, 14); string str_r1 = rBase[r1].Trim(); int r2 = rnd.Next(0, 7); if (r1 == 13) { r2 = rnd.Next(0, 16); } else if (r1 == 15) { r2 = rnd.Next(0, 16); } else { r2 = rnd.Next(0, 16); } string str_r2 = rBase[r2].Trim(); byte byte1 = Convert.ToByte(str_r1 + str_r2, 16); byte byte2 = Convert.ToByte(str_r3 + str_r4, 16); byte[] str_r = new byte[] { byte1, byte2 }; bytes.SetValue(str_r, i); } return bytes; } public static void Main() { Encoding gb = Encoding.GetEncoding("gb2312"); object[] bytes = CreateRegionCode(4); string str1 = gb.GetString((byte[])Convert.ChangeType(bytes[0], typeof(byte[]))); string str2 = gb.GetString((byte[])Convert.ChangeType(bytes[1], typeof(byte[]))); string str3 = gb.GetString((byte[])Convert.ChangeType(bytes[2], typeof(byte[]))); string str4 = gb.GetString((byte[])Convert.ChangeType(bytes[3], typeof(byte[]))); Console.WriteLine(str1 + str2 + str3 + str4); } }} ????????????????????????????????????????????????GB2312?????????????????????????B?C?D???????????????????
????????????????????????????????????????????????
转载地址:http://wfje.baihongyu.com/