📄 gsm7bitencoding.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 + -