亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? 手機(jī)短信息的編解碼類 .cs

?? GPS的資料,上來(lái)和大家分享,正做這個(gè)的朋友可以看看.
?? CS
字號(hào):
//手機(jī)短信息的編解碼類 
//作者:未知 來(lái)源:轉(zhuǎn)載 發(fā)布時(shí)間:2006-6-2 12:15:38 發(fā)布人:allman 
//減小字體 增大字體 

using System;
using System.Text;

namespace jace.CN.SMSLib
{
    /// <summary>
    /// By popcorn 2004.5。
    /// cnpopcorn@hotmail.com
    /// </summary>
    public class CNText
    {
        public CNText()
        {
        }
        /// <summary>
        /// 編碼格式
        /// </summary>
        public enum GSMCode
        {
            Bit7 = 0,
            Bit8 = 1,
            UCS2 = 2
        }

        /// <summary>
        /// 對(duì)整個(gè)短信息進(jìn)行解碼
        /// </summary>
        /// <param name="s">要解碼的信息</param>
        /// <param name="phone">解碼后的電話號(hào)碼</param>
        /// <param name="text">解碼后的短信內(nèi)容</param>
        /// <param name="sendTime">短信時(shí)間戳</param>
        /// <param name="code">使用的編碼方式</param>
        /// <param name="SCA">短信中心號(hào)</param>
        /// <returns>成功返回true</returns>
        static public bool DecodingMsg(string s, ref string phone, ref string text, ref DateTime sendTime, ref GSMCode code, ref string SCA)
        {
            try
            {
                //短信息中心
                int iLength = int.Parse(s.Substring(0, 2), System.Globalization.NumberStyles.AllowHexSpecifier);
                if (iLength > 0)
                {
                    if (s.Substring(2, 2) == "91")
                    {
                        SCA += "+";
                        iLength--;
                    }
                    for (int i = 0; i < iLength * 2; i += 2)
                    {
                        SCA += s.Substring(5 + i, 1);
                        SCA += s.Substring(4 + i, 1);
                    }
                    if (SCA.EndsWith("F")) SCA = SCA.Remove(SCA.Length - 1, 1);
                }

                s = s.Remove(0, iLength * 2 + 6);

                //發(fā)送方號(hào)碼
                iLength = int.Parse(s.Substring(0, 2), System.Globalization.NumberStyles.AllowHexSpecifier);
                if (s.Substring(2, 2) == "91")
                {
                    phone = "+";
                }
                if (iLength % 2 == 1) iLength++;
                for (int i = 0; i < iLength; i += 2)
                {
                    phone += s.Substring(5 + i, 1);
                    phone += s.Substring(4 + i, 1);
                }
                if (phone.EndsWith("F")) phone = phone.Remove(phone.Length - 1, 1);

                s = s.Remove(0, iLength + 6);
                //編碼方式
                if (s.Substring(0, 2) == "08")
                    code = GSMCode.UCS2;
                else if (s.Substring(0, 2) == "00")
                    code = GSMCode.Bit7;
                else
                    code = GSMCode.Bit8;

                s = s.Remove(0, 2);
                //時(shí)間戳
                sendTime = new DateTime(int.Parse("20" + s.Substring(1, 1) + s.Substring(0, 1)),
                int.Parse(s.Substring(3, 1) + s.Substring(2, 1)),
                int.Parse(s.Substring(5, 1) + s.Substring(4, 1)),
                int.Parse(s.Substring(7, 1) + s.Substring(6, 1)),
                int.Parse(s.Substring(9, 1) + s.Substring(8, 1)),
                int.Parse(s.Substring(11, 1) + s.Substring(10, 1)));
                s = s.Remove(0, 16);

                //收到的信息
                if (code == GSMCode.Bit7)
                {
                    text = DecodingBit7(s);
                }
                else if (code == GSMCode.UCS2)
                {
                    text = DecodingUCS2(s);
                }
                else
                {
                    text = DecodingBit8(s);
                }
                return true;
            }
            catch
            {
                return false;
            }
        }

        /// <summary>
        /// 對(duì)短信息中心進(jìn)行編碼
        /// </summary>
        /// <param name="s">要編碼的號(hào)碼</param>
        /// <returns>編碼后的號(hào)碼</returns>
        static public string EncodingSCA(string s)
        {
            StringBuilder sb = new StringBuilder();
            if (s.Length == 0)
            {
                sb.Append("00");
                return sb.ToString();
            }
            if (s.StartsWith("+"))
            {
                sb.Append("91"); //用國(guó)際格式號(hào)碼(在前面加‘+’)
                s = s.Remove(0, 1);
            }
            else
            {
                sb.Append("C8");
            }
            if (s.Length % 2 == 1) s += "F";
            for (int i = 0; i < s.Length; i += 2)
            {
                sb.Append(s.Substring(i + 1, 1));
                sb.Append(s.Substring(i, 1));
            }
            string len = (sb.Length / 2).ToString("X2");
            return len + sb.ToString();
        }
        /// <summary>
        /// 對(duì)電話號(hào)碼進(jìn)行編碼
        /// </summary>
        /// <param name="mobileNo">要編碼的電話號(hào)碼</param>
        /// <returns>編碼后的電話號(hào)碼</returns>
        static public string EncodingNumber(string mobileNo)
        {
            StringBuilder sb = new StringBuilder();
            if (mobileNo.StartsWith("+"))
            {
                sb.Append("91");
                mobileNo = mobileNo.Remove(0, 1);
            }
            else
            {
                sb.Append("C8");
            }
            string len = mobileNo.Length.ToString("X2");
            if (mobileNo.Length % 2 == 1) mobileNo += "F";
            for (int i = 0; i < mobileNo.Length; i += 2)
            {
                sb.Append(mobileNo.Substring(i + 1, 1));
                sb.Append(mobileNo.Substring(i, 1));
            }
            return len + sb.ToString();
        }

        /// <summary>
        /// 使用7-bit進(jìn)行編碼
        /// </summary>
        /// <param name="s">要編碼的英文字符串</param>
        /// <returns>信息長(zhǎng)度及編碼后的字符串</returns>
        static public string EncodingBit7(string s)
        {
            int iLeft = 0;
            string sReturn = "";
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < s.Length; i++)
            {
                // 取源字符串的計(jì)數(shù)值的最低3位
                int iChar = i & 7;
                byte bSrc = (byte)char.Parse(s.Substring(i, 1));
                // 處理源串的每個(gè)字節(jié)
                if (iChar == 0)
                {
                    // 組內(nèi)第一個(gè)字節(jié),只是保存起來(lái),待處理下一個(gè)字節(jié)時(shí)使用
                    iLeft = (int)char.Parse(s.Substring(i, 1));
                }
                else
                {
                    // 組內(nèi)其它字節(jié),將其右邊部分與殘余數(shù)據(jù)相加,得到一個(gè)目標(biāo)編碼字節(jié)
                    sReturn = (bSrc << (8 - iChar) | iLeft).ToString("X4");
                    // 將該字節(jié)剩下的左邊部分,作為殘余數(shù)據(jù)保存起來(lái)
                    iLeft = bSrc >> iChar;
                    // 修改目標(biāo)串的指針和計(jì)數(shù)值 pDst++;
                    sb.Append(sReturn.Substring(2, 2));
                }
            }
            sb.Append(sReturn.Substring(0, 2));
            return (sb.Length / 2).ToString("X2") + sb.ToString();
        }
        /// <summary>
        /// 對(duì)7-bit編碼進(jìn)行解碼
        /// </summary>
        /// <param name="s">要解碼的字符串</param>
        /// <returns>解碼后的英文字符串</returns>
        static public string DecodingBit7(string s)
        {
            int iByte = 0;
            int iLeft = 0;
            // 將源數(shù)據(jù)每7個(gè)字節(jié)分為一組,解壓縮成8個(gè)字節(jié)
            // 循環(huán)該處理過(guò)程,直至源數(shù)據(jù)被處理完
            // 如果分組不到7字節(jié),也能正確處理
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            for (int i = 0; i < s.Length; i += 2)
            {
                byte bSrc = byte.Parse(s.Substring(i, 2), System.Globalization.NumberStyles.AllowHexSpecifier);
                // 將源字節(jié)右邊部分與殘余數(shù)據(jù)相加,去掉最高位,得到一個(gè)目標(biāo)解碼字節(jié)
                sb.Append((((bSrc << iByte) | iLeft) & 0x7f).ToString("X2"));
                // 將該字節(jié)剩下的左邊部分,作為殘余數(shù)據(jù)保存起來(lái)
                iLeft = bSrc >> (7 - iByte);
                // 修改字節(jié)計(jì)數(shù)值
                iByte++;
                // 到了一組的最后一個(gè)字節(jié)
                if (iByte == 7)
                {
                    // 額外得到一個(gè)目標(biāo)解碼字節(jié)
                    sb.Append(iLeft.ToString("X2"));
                    // 組內(nèi)字節(jié)序號(hào)和殘余數(shù)據(jù)初始化
                    iByte = 0;
                    iLeft = 0;
                }
            }
            string sReturn = sb.ToString();
            byte[] buf = new byte[sReturn.Length / 2];
            for (int i = 0; i < sReturn.Length; i += 2)
            {
                buf[i / 2] = byte.Parse(sReturn.Substring(i, 2), System.Globalization.NumberStyles.AllowHexSpecifier);
            }
            return System.Text.Encoding.ASCII.GetString(buf);
        }
        //[dvnews_page]
        /// <summary>
        /// 使用8-bit進(jìn)行編碼
        /// </summary>
        /// <param name="s">要編碼的字符串</param>
        /// <returns>信息長(zhǎng)度及編碼后的字符串</returns>
        static public string EncodingBit8(string s)
        {
            StringBuilder sb = new StringBuilder();
            byte[] buf = Encoding.ASCII.GetBytes(s);
            sb.Append(buf.Length.ToString("X2"));
            for (int i = 0; i < buf.Length; i++)
            {
                sb.Append(buf[i].ToString("X2"));
            }
            return sb.ToString();
        }
        /// <summary>
        /// 使用8-bit進(jìn)行解碼
        /// </summary>
        /// <param name="s">要解碼的字符串</param>
        /// <returns>解碼后的字符串</returns>
        static public string DecodingBit8(string s)
        {
            byte[] buf = new byte[s.Length / 2];
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < s.Length; i += 2)
            {
                buf[i / 2] = byte.Parse(s.Substring(i, 2), System.Globalization.NumberStyles.AllowHexSpecifier);
            }
            return Encoding.ASCII.GetString(buf);
        }

        /// <summary>
        /// 中文短信息UCS2編碼
        /// </summary>
        /// <param name="s">要編碼的中文字符串</param>
        /// <returns>信息長(zhǎng)度及編碼后的字符串</returns>
        static public string EncodingUCS2(string s)
        {
            StringBuilder sb = new StringBuilder();
            byte[] buf = Encoding.Unicode.GetBytes(s);
            sb.Append(buf.Length.ToString("X2"));
            for (int i = 0; i < buf.Length; i += 2)
            {
                sb.Append(buf[i + 1].ToString("X2"));
                sb.Append(buf[i].ToString("X2"));
            }
            return sb.ToString();
        }

        /// <summary>
        /// 中文短信息UCS2解碼
        /// </summary>
        /// <param name="s">要解碼的信息</param>
        /// <returns>解碼后的中文字符串</returns>
        static public string DecodingUCS2(string s)
        {
            byte[] buf = new byte[s.Length];
            for (int i = 0; i < s.Length; i += 4)
            {
                buf[i / 2] = byte.Parse(s.Substring(2 + i, 2), System.Globalization.NumberStyles.AllowHexSpecifier);
                buf[i / 2 + 1] = byte.Parse(s.Substring(i, 2), System.Globalization.NumberStyles.AllowHexSpecifier);
            }
            return Encoding.Unicode.GetString(buf);
        }

    }
}


?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人午夜高潮毛片| 香蕉乱码成人久久天堂爱免费| 91在线丨porny丨国产| 天天影视色香欲综合网老头| 国产日韩欧美麻豆| 91精品国产一区二区三区蜜臀| 97久久精品人人做人人爽50路| 日韩电影免费在线看| 国产精品久久久久aaaa| 日韩欧美久久一区| 欧美日韩一区高清| 91久久线看在观草草青青| 捆绑调教美女网站视频一区| 午夜欧美大尺度福利影院在线看| 国产精品福利一区二区| 久久精品一区蜜桃臀影院| 日本高清免费不卡视频| 亚洲成av人片观看| 久久蜜桃香蕉精品一区二区三区| 处破女av一区二区| 久久综合五月天婷婷伊人| 欧美日韩一二三区| 欧美日韩国产影片| 欧美色区777第一页| 波多野结衣亚洲| 白白色 亚洲乱淫| 成人高清av在线| 不卡一卡二卡三乱码免费网站| 国产成人午夜精品影院观看视频 | 国产精品美女久久久久av爽李琼| 欧美精品久久99久久在免费线| 欧美在线999| 欧美一卡二卡三卡| 精品国产亚洲在线| 国产色一区二区| 国产亚洲1区2区3区| 国产精品国产精品国产专区不片| 国产精品成人一区二区艾草| 亚洲日本青草视频在线怡红院 | 综合色中文字幕| 亚洲大片在线观看| 久久爱www久久做| 色www精品视频在线观看| 欧美在线综合视频| 欧美大白屁股肥臀xxxxxx| 国产日产精品一区| 日韩制服丝袜av| 成人小视频在线| 欧美日韩在线免费视频| 欧美一区二区三区日韩| 国产婷婷精品av在线| 一区2区3区在线看| 国产一区二区剧情av在线| 欧美日韩一级视频| 国产日韩一级二级三级| 三级久久三级久久| 91麻豆高清视频| 久久综合九色综合97婷婷| 一区二区三区电影在线播| 国产成人免费在线观看| 国产乱理伦片在线观看夜一区 | 91精品国产综合久久久久久久| √…a在线天堂一区| 久久精品72免费观看| 欧美日韩在线精品一区二区三区激情| 日本一区二区高清| 国产电影一区二区三区| 久久精品一区二区三区四区| 91黄色免费观看| 国产拍欧美日韩视频二区| 国产精品资源在线| xfplay精品久久| 顶级嫩模精品视频在线看| 精品99久久久久久| 国产精品亚洲成人| 国产精品美女一区二区三区| 国产一区二区在线看| 久久精品网站免费观看| 日韩毛片一二三区| 国产美女精品人人做人人爽| 欧美吞精做爰啪啪高潮| 国产欧美一区二区精品婷婷| **欧美大码日韩| 婷婷中文字幕一区三区| 久久精品999| 久久综合色鬼综合色| 国产福利不卡视频| ●精品国产综合乱码久久久久| 国产高清精品在线| 国产精品久久网站| 波多野结衣在线一区| 亚洲欧美二区三区| 欧美日韩高清一区| 激情综合亚洲精品| 国产精品美女久久久久高潮| 在线电影院国产精品| 国产一区91精品张津瑜| 亚洲精品乱码久久久久久久久| 在线观看av一区| 国内成人自拍视频| 国产精品不卡一区| 在线区一区二视频| 国产成人精品一区二区三区四区| 亚洲欧美激情在线| 欧美tickle裸体挠脚心vk| 91久久线看在观草草青青 | 国产欧美日韩综合精品一区二区 | 欧美日韩久久久| 国产精品伊人色| 久久99久久99精品免视看婷婷| 国产精品污污网站在线观看 | 欧美性生活一区| 99精品久久久久久| 91啪九色porn原创视频在线观看| 另类中文字幕网| 亚洲国产精品久久一线不卡| 中文字幕第一区| 在线播放中文字幕一区| 99免费精品在线| 国产高清精品在线| 精品在线视频一区| 日本欧美一区二区在线观看| 天天av天天翘天天综合网| 亚洲欧美日韩久久| 国产精品乱码妇女bbbb| 亚洲国产精品高清| 久久色.com| 久久综合资源网| 久久精品人人做人人爽人人| 精品免费视频一区二区| 欧美日韩国产天堂| 精品精品欲导航| 精品国产一区二区精华| 精品国产一区久久| 久久精子c满五个校花| 2017欧美狠狠色| 中文字幕高清不卡| 亚洲午夜精品17c| 国产一区欧美日韩| www.亚洲国产| 精品视频一区二区不卡| 在线精品视频免费观看| 欧美羞羞免费网站| 国产日韩亚洲欧美综合| 一区二区三区精品在线| 日韩avvvv在线播放| 成人av在线资源网| 日韩一区二区在线看| 日韩欧美一区二区视频| 日韩一区二区麻豆国产| 中文字幕第一区| 午夜精品影院在线观看| 国产69精品久久久久777| 欧美色综合影院| 久久综合狠狠综合久久综合88| 国产色产综合产在线视频| 亚洲va韩国va欧美va| 成人av第一页| 久久亚洲影视婷婷| 日韩av中文字幕一区二区| 成人动漫av在线| 欧美一区二区视频在线观看2020 | 99精品国产91久久久久久 | 亚洲精品一区二区三区福利| 亚洲精品高清视频在线观看| 国产大片一区二区| 精品久久一区二区三区| 五月婷婷激情综合| 91麻豆成人久久精品二区三区| 欧美电影免费观看高清完整版| 悠悠色在线精品| 国产乱子伦视频一区二区三区| 欧美三级电影精品| 亚洲国产日产av| 欧洲视频一区二区| 亚洲精品日日夜夜| 97久久超碰国产精品| 中文字幕在线不卡视频| 国内精品在线播放| 欧美一区二区日韩一区二区| 天天色综合天天| 3d成人h动漫网站入口| 亚洲高清不卡在线| 91精品国产福利| 日本不卡视频在线| 日韩视频一区二区三区在线播放 | 国产大陆亚洲精品国产| 久久精品视频网| 国产精品系列在线观看| 久久久久久久久久久电影| 成人av电影在线播放| 亚洲激情欧美激情| 欧美乱妇23p| 久久精品免费观看| 久久综合五月天婷婷伊人| 99精品视频在线播放观看| 亚洲第一狼人社区| 精品欧美一区二区在线观看| 国产成+人+日韩+欧美+亚洲| 亚洲欧美日韩在线不卡|