zoukankan      html  css  js  c++  java
  • 加码解码

            public string EncodingSMS(string s)
            
    {
                
    string result = string.Empty;

                
    byte[] arrByte = System.Text.Encoding.GetEncoding("GB2312").GetBytes(s);    
                
    for(int i = 0; i < arrByte.Length; i++)
                
    {
                    result 
    += System.Convert.ToString(arrByte[i], 16);        //Convert.ToString(byte, 16)把byte转化成十六进制string
                }


                
    return result;
            }


            
    public string DecodingSMS(string s)
            
    {
                
    string result = string.Empty;

                
    byte[] arrByte = new byte[s.Length / 2];
                
    int index = 0;
                
    for(int i = 0; i < s.Length; i += 2)
                
    {
                    arrByte[index
    ++= Convert.ToByte(s.Substring(i,2),16);        //Convert.ToByte(string,16)把十六进制string转化成byte
                }

                result 
    = System.Text.Encoding.Default.GetString(arrByte);

                
    return result;

            }


    加码解码的规则如下:
    加码时将字符串中的所有字符转换成其对应的ASCII值的16进制值,例如:“A”的ASCII码值为65,以16进制值表示为41,故应发送两个字符“41”以代表字符“A”。
    对于汉字则以其内码的16进制值来表示,如“测试”应为:B2E2CAD4。


    原理:
                string aaa = "AB测试";
                
    byte[] bbb = System.Text.Encoding.Default.GetBytes(aaa);
                
    string ccc  = System.Text.Encoding.Default.GetString(bbb);

                
    for(int i = 0; i < bbb.Length; i++)
                
    {
                    Response.Write(System.Convert.ToString(bbb[i], 
    16));
                }
                     
                Response.Write(ccc);
  • 相关阅读:
    TF-IDF与余弦类似性的应用(一):自己主动提取关键词
    三层中的大学问
    浅析JavaBean
    查看和改动MySQL数据库表存储引擎
    菜鸟之路--线性表__链表实现
    STL_算法_元素计数(count、count_if)
    ZOJ 3691 Flower(最大流+二分)
    字符的编码与解码
    主动訪问用户数据的背后是品牌战略
    输入n,求1~n累加
  • 原文地址:https://www.cnblogs.com/xiaodi/p/145493.html
Copyright © 2011-2022 走看看