⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gsm7bitencoding.txt

📁 GSM7Bit转化成Unicode
💻 TXT
字号:
        private class GSM7BitEncoding
        {
            private DataSet_GSM7bit与Unicode不一致 DataSet_单字节与双字节;
            public GSM7BitEncoding()
            {
                DataSet_单字节与双字节 = new DataSet_GSM7bit与Unicode不一致();
                //
                //
                DataSet_单字节与双字节.单字节.Add单字节Row(0, 64);
                DataSet_单字节与双字节.单字节.Add单字节Row(1, 163);
                DataSet_单字节与双字节.单字节.Add单字节Row(2, 36);
                DataSet_单字节与双字节.单字节.Add单字节Row(3, 165);
                DataSet_单字节与双字节.单字节.Add单字节Row(4, 232);
                DataSet_单字节与双字节.单字节.Add单字节Row(5, 233);
                DataSet_单字节与双字节.单字节.Add单字节Row(6, 249);
                DataSet_单字节与双字节.单字节.Add单字节Row(7, 236);
                DataSet_单字节与双字节.单字节.Add单字节Row(8, 242);
                DataSet_单字节与双字节.单字节.Add单字节Row(9, 199);
                DataSet_单字节与双字节.单字节.Add单字节Row(11, 216);
                DataSet_单字节与双字节.单字节.Add单字节Row(12, 248);
                DataSet_单字节与双字节.单字节.Add单字节Row(14, 197);
                DataSet_单字节与双字节.单字节.Add单字节Row(15, 229);
                DataSet_单字节与双字节.单字节.Add单字节Row(16, 916);
                DataSet_单字节与双字节.单字节.Add单字节Row(17, 95);
                DataSet_单字节与双字节.单字节.Add单字节Row(18, 934);
                DataSet_单字节与双字节.单字节.Add单字节Row(19, 915);
                DataSet_单字节与双字节.单字节.Add单字节Row(20, 923);
                DataSet_单字节与双字节.单字节.Add单字节Row(21, 937);
                DataSet_单字节与双字节.单字节.Add单字节Row(22, 928);
                DataSet_单字节与双字节.单字节.Add单字节Row(23, 968);
                DataSet_单字节与双字节.单字节.Add单字节Row(24, 931);
                DataSet_单字节与双字节.单字节.Add单字节Row(25, 952);
                DataSet_单字节与双字节.单字节.Add单字节Row(26, 926);
                //“27”是双字节的
                //
                DataSet_单字节与双字节.单字节.Add单字节Row(28, 198);
                DataSet_单字节与双字节.单字节.Add单字节Row(29, 230);
                DataSet_单字节与双字节.单字节.Add单字节Row(30, 223);
                DataSet_单字节与双字节.单字节.Add单字节Row(31, 201);
                DataSet_单字节与双字节.单字节.Add单字节Row(36, 164);
                DataSet_单字节与双字节.单字节.Add单字节Row(64, 161);
                DataSet_单字节与双字节.单字节.Add单字节Row(91, 196);
                DataSet_单字节与双字节.单字节.Add单字节Row(92, 214);
                DataSet_单字节与双字节.单字节.Add单字节Row(93, 209);
                DataSet_单字节与双字节.单字节.Add单字节Row(94, 220);
                DataSet_单字节与双字节.单字节.Add单字节Row(95, 167);
                DataSet_单字节与双字节.单字节.Add单字节Row(96, 191);
                DataSet_单字节与双字节.单字节.Add单字节Row(123, 228);
                DataSet_单字节与双字节.单字节.Add单字节Row(124, 246);
                DataSet_单字节与双字节.单字节.Add单字节Row(125, 241);
                DataSet_单字节与双字节.单字节.Add单字节Row(126, 252);
                DataSet_单字节与双字节.单字节.Add单字节Row(127, 224);
                //
                //
                //GSM7bit中有双字节表示一个字符的,前一个字节都是“27”,把后一个字节转化成Unicode
                DataSet_单字节与双字节.双字节.Add双字节Row(10, 12);
                DataSet_单字节与双字节.双字节.Add双字节Row(20, 94);
                DataSet_单字节与双字节.双字节.Add双字节Row(40, 123);
                DataSet_单字节与双字节.双字节.Add双字节Row(41, 125);
                DataSet_单字节与双字节.双字节.Add双字节Row(47, 92);
                DataSet_单字节与双字节.双字节.Add双字节Row(60, 91);
                DataSet_单字节与双字节.双字节.Add双字节Row(61, 126);
                DataSet_单字节与双字节.双字节.Add双字节Row(62, 93);
                DataSet_单字节与双字节.双字节.Add双字节Row(64, 124);
                DataSet_单字节与双字节.双字节.Add双字节Row(101, 8364);
            }

            public string 把GSM7Bit字符串转化成Unicode字符串(string GSM7Bit字符串)
            {
                return 把GSM7Bit字节数组转化成Unicode字符串(把GSM7Bit字符串转化成GSM7Bit字节数组(GSM7Bit字符串));
            }

            private byte[] 把GSM7Bit字符串转化成GSM7Bit字节数组(string GSM7Bit字符串)
            {
                string[] 每个元素都是一个二进制的位串 = new string[GSM7Bit字符串.Length / 2];
                for (int i = 0; i < GSM7Bit字符串.Length; i += 2)
                {
                    每个元素都是一个二进制的位串[i / 2] = Convert.ToString(Int32.Parse(GSM7Bit字符串.Substring(i, 2), System.Globalization.NumberStyles.HexNumber), 2).PadLeft(8, '0');
                }
                //
                //复制
                int 复制的位数 = 1;
                for (int i = 0; i < 每个元素都是一个二进制的位串.Length - 1; i++)
                {
                    if (复制的位数 < 7)
                    {
                        每个元素都是一个二进制的位串[i + 1] += 每个元素都是一个二进制的位串[i].Substring(0, 复制的位数);
                        //
                        复制的位数++;
                    }
                    else
                    {
                        复制的位数 = 1;
                    }
                }
                //
                //积累
                string 积累 = "";
                复制的位数 = 1;
                for (int i = 0; i < 每个元素都是一个二进制的位串.Length; i++)
                {
                    if (复制的位数 < 7)
                    {
                        积累 += "①" + 每个元素都是一个二进制的位串[i].Substring(复制的位数);
                        //
                        复制的位数++;
                    }
                    else
                    {
                        积累 += "①" + 每个元素都是一个二进制的位串[i].Substring(复制的位数);
                        //
                        积累 += "①" + 每个元素都是一个二进制的位串[i].Substring(0, 7);
                        //
                        复制的位数 = 1;
                    }
                }
                //
                if (积累 != "")
                {
                    积累 = 积累.Remove(0, 1);
                }
                string[] 每个元素都是一个8位的ASCII码 = 积累.Split(new char[] { '①' });
                //
                byte[] 字节数组 = new byte[每个元素都是一个8位的ASCII码.Length];
                for (int i = 0; i < 每个元素都是一个8位的ASCII码.Length; i++)
                {
                    字节数组[i] = Byte.Parse(Convert.ToInt32(每个元素都是一个8位的ASCII码[i], 2).ToString());
                }
                //
                //
                return 字节数组;
            }
            private string 把GSM7Bit字节数组转化成Unicode字符串(byte[] 字节数组)
            {
                string 返回 = "";
                //
                //
                StringBuilder 可变字符串 = new StringBuilder();
                //
                for (int i = 0; i < 字节数组.Length; i++)
                {
                    //双字节表示一个字符
                    if (字节数组[i] == 27)
                    {
                        DataSet_GSM7bit与Unicode不一致.双字节Row 数据行 = DataSet_单字节与双字节.双字节.FindByGSM(字节数组[i + 1]);
                        //
                        if (数据行 == null)
                        {
                            可变字符串.Append("?");
                        }
                        else
                        {
                            可变字符串.Append((char)数据行.Unicode);
                        }
                        //
                        i++;
                    }
                    else
                    {
                        DataSet_GSM7bit与Unicode不一致.单字节Row 数据行 = DataSet_单字节与双字节.单字节.FindByGSM(字节数组[i]);
                        //
                        if (数据行 == null)
                        {
                            可变字符串.Append((char)字节数组[i]);
                        }
                        else
                        {
                            可变字符串.Append((char)数据行.Unicode);
                        }
                    }
                }
                //
                返回 = 可变字符串.ToString();
                //
                //
                return 返回;
            }
        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -