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

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

?? 手機(jī)短信息sms開發(fā)—編碼和解碼.txt

?? 很好的短消息發(fā)送實例
?? TXT
字號:
手機(jī)短信息SMS開發(fā)—編碼和解碼 
 
2002-07-04· · ··C++builder資源中心

 
上一頁  1 2 3  


  3、中文編碼 

  中文編碼較為簡單,就是將GB2312的中文編碼轉(zhuǎn)換為代碼頁為CP936的Unicode編碼即可 

  以下是C++Builder的實現(xiàn)代碼 

String EncodeChinese(String InputStr) 

{ 

int cur; 

String tempstr,returnstr; 

WideString ws; 

wchar_t mid[2]; 

ws=WideString(InputStr); 

for(int i=1;i<=ws.Length();i++) 

{ 

wcscpy(mid,ws.SubString(i,1).c_bstr()); 

cur=mid[0]; 

FmtStr(tempstr,"%4.4X",ARRAYOFCONST((cur))); 

returnstr=returnstr+tempstr; 

} 

return returnstr; 

}  

  4、中文解碼 

  將代碼頁為CP936的Unicode編碼轉(zhuǎn)換為GB2312的中文編碼即可 

  以下是C++Builder的實現(xiàn)代碼 

String DecodeChinese(String InputStr) 

{ 

wchar_t Buf[300]; 

for(int i=0;i
{ 

Buf[i/4]=StrToInt("0x"+InputStr.SubString(i+1,4)); 

} 

Buf[InputStr.Length()/4]=0; 

return WideCharToString(Buf); 

} 

ChangNing(Redpower) 

 2、英文解碼 

  簡單地說就是將7位字符編碼轉(zhuǎn)換為8為字符編碼 

  以下是C++Builder的實現(xiàn)代碼: 

int ReturnHex(int Value) 

{ 

switch (Value) 

{ 

case 0: 

Value=0x7f; 

break; 

case 1: 

Value=0x3f; 

break; 

case 2: 

Value=0x1f; 

break; 

case 3: 

Value=0x0f; 

break; 

case 4: 

Value=0x07; 

break; 

case 5: 

Value=0x03; 

break; 

case 6: 

Value=0x01; 

break; 

case 7: 

Value=0x00; 

break; 

} 

return Value; 

} 

String __stdcall DecodeEnglish (String InputStr) 

{ 

unsigned char InStr[300]; 

char OutStr[300]; 

String str; 

int j=0,i=0; 

int Point=0; 

int temp; 

memset(InStr,0,301); 

memset(OutStr,0,301); 

for(int i=0;i
{ 

str="0x"+InputStr.SubString(i+1,2); 

InStr[i/2]=StrToInt(str); 

} 

while(j<=InputStr.Length()/2) 

{ 

if(Point==0) 

OutStr[i]=InStr[j]&ReturnHex(Point); 

else 

OutStr[i]=((InStr[j]&ReturnHex(Point))<>(8-Point)); 

if(Point%7==0&&Point!=0) 

Point=0; 

else 

Point=Point+1; 

i++; 

j=i-(i/8); 



} 

OutStr[12]=((InStr[12]&0x07)<<5)|(InStr[11]>>(8-5)); 

return AnsiString(OutStr); 

}  
1、 英文編碼 

  缺省的GSM字符集為7位編碼,ASCII碼為8位編碼,編碼就是將8位ASCII編碼轉(zhuǎn)換為7位編碼。 

  例如:1234 編碼后得到31D98C06 

  2進(jìn)制表示 

  8位編碼 00110001 00110010 00110011 00110100 

  7位編碼 00110001 11011001 10001100 00000110 

  通過例子可以看出,將ascii8位編碼的Bit8去掉,依次將下7位編碼的后幾位逐次移到前面,形成新的8位編碼。 

  以下是C++Builder的實現(xiàn)代碼: 

String __stdcall EncodeEnglish(String InputStr) 

{ 

int n,len,cur; 

String tempstr,returnstr; 

unsigned char mid1[2],mid2[2]; 

len=InputStr.Length(); 

n=0; 

for(int i=1;i<=len;i++) 

{ 

if (i
{ 

strcpy(mid1,InputStr.SubString(i,1).c_str()); 

strcpy(mid2,InputStr.SubString(i+1,1).c_str()); 

cur=(mid1[0]>>n)|((mid2[0]<<(7-n))& 0xff); 

} 

else 

{ 

strcpy(mid1,InputStr.SubString(i,1).c_str()); 

cur=(mid1[0]>>n)& 0x7f; 

} 

FmtStr(tempstr,"%2.2X",ARRAYOFCONST((cur))); 

returnstr=returnstr+tempstr; 

n=(n+1)%7; 

if (n==0) 

i++; 

} 

return returnstr; 

}  

 
 
目前手機(jī)短信息的應(yīng)用越來越廣泛,互聯(lián)網(wǎng)上提供短信息發(fā)送的站點也越來越多,但一些站點的服務(wù)并不盡如人意,往往發(fā)出去的短信息石沉大海。最可靠的發(fā)送方法當(dāng)然是用手中的手機(jī)了,如果設(shè)置了狀態(tài)報告,更能確切知道對方是否收到了此條信息。手機(jī)發(fā)送盡管比較可靠, 但也存在輸入麻煩、效率低的問題。本文介紹一種方法,只要手機(jī)能夠與電腦相連(通過紅外端口或用手機(jī)數(shù)據(jù)線連接串行口,同時手機(jī)支持GSM AT指令集),就可以通過自行編制的短信息發(fā)送軟件,實現(xiàn)短信息的發(fā)送。 
現(xiàn)在市場上的大多數(shù)手機(jī)均支持類似于Modem控制的GSM AT指令集,該指令集是由諾基亞、愛立信、摩托羅拉和HP等廠家共同為GSM系統(tǒng)研制的,其中包含了對SMS(Short Message Service)的控制。 
GSM AT相關(guān)指令的介紹 
與SMS有關(guān)的GSM AT指令如表1所示: 
(暫無) 
表1 相關(guān)的GSM AT指令 
對SMS的控制共有三種實現(xiàn)途徑: 
Block Mode; 
基于AT命令的Text Mode; 
基于AT命令的PDU Mode。 
Text Mode比較簡單,多款諾基亞手機(jī)均支持該模式。西門子的手機(jī)大多只支持PDU模式,PDU模式是發(fā)送或接收手機(jī)SMS信息的一種方法,短信息正文經(jīng)過十六進(jìn)制編碼后被傳送。目前,PDU已取代Block Mode,因此本文主要探討PDU模式的發(fā)送。 
計算機(jī)和手機(jī)的通信 
本文以西門子 S3568i為例,介紹如何實現(xiàn)短信息的發(fā)送。 
數(shù)據(jù)線連接 
首先,通過S3525數(shù)據(jù)線將手機(jī)與電腦串行口相連。然后,打開超級終端,選擇直接串行口連接,端口參數(shù)設(shè)為19200速率、無校驗、數(shù)據(jù)位8、停止位1。 
紅外線連接 
如果使用帶紅外端口的計算機(jī),可以設(shè)置與手機(jī)的無線連接。首先確認(rèn)計算機(jī)紅外端口已打開,并將手機(jī)的紅外線和收傳真數(shù)據(jù)功能打開,對接紅外端口,計算機(jī)系統(tǒng)托盤上應(yīng)當(dāng)出現(xiàn)一個紅外設(shè)備西門子S35(如果沒有安裝紅外監(jiān)視器,則不顯示)。然后,打開超級終端,選擇IrDa上的串行口。 
連接測試 
點擊超級終端工具條上的呼叫按鈕,輸入AT并回車,屏幕上如果出現(xiàn)OK則表明計算機(jī)與手機(jī)的連接成功,這時就可以輸入各類GSM AT指令了。 
如:查詢手機(jī)廠家,輸入AT+CGMI=,屏幕顯示Siemens。 
通常情況下,執(zhí)行測試命令A(yù)T+CMGS=?,如果返回OK,表明手機(jī)支持此指令。該指令的完整語法格式如下: 
If PDU mode (+CMGF=0)+CMGS=PDU is given 
如果短信息格式指令A(yù)T+CMGF返回的是0,則SMS格式為PDU模式,再執(zhí)行AT+CMGS=<數(shù)據(jù)長度>命令后,手機(jī)返回“>”符號并等待輸入,輸入PDU數(shù)據(jù)并以^Z或Esc鍵結(jié)束。 
如果信息發(fā)送成功,則返回OK,并顯示信息號: 
+CMGS: 
如果發(fā)送失敗,則返回如下信息: 
+CMS ERROR: 
PDU數(shù)據(jù)格式的分析 
下面通過對存儲在手機(jī)中的待發(fā)信息的分析,來介紹SMS PDU的數(shù)據(jù)格式。首先,用手機(jī)寫一條短信息,發(fā)送手機(jī)號碼為13605696031,信息內(nèi)容為“Hello World!”。通過執(zhí)行AT+CMGL=2可以讀出此條信息。 
操作過程如下(斜體字符為響應(yīng)信息,{}內(nèi)為注釋): 
AT 
OK 
AT+CMGL=2 {讀未發(fā)短信息} 
+CMGL: 1,2,,24 {1表示信息個數(shù),2表示未發(fā)信息,24表示信息總?cè)萘縸 
08 91 683108501505F0 11 00 0B 81 3106656930F1 0000A7 0B E8329BFD06DDDF723619 
OK  
下面分析這條信息: 
08:短信息中心地址長度。 
91:短信息中心號碼類型,91是TONNPI。TONNPI遵守InternationalE.164標(biāo)準(zhǔn),指在號碼前需加‘+'號;此外還可有其他數(shù)值,但91最常用。 
683108501505F0:短信息號碼,是所使用的服務(wù)中心地址。由于位置上略有處理,實際號碼應(yīng)為:8613805515500(字母F意指長度減1),這是作者所在地GSM短信息中心的號碼。 
11:文件頭字節(jié)(header byte,是一種bitmask)。這里11指正常地發(fā)送短信息。 
00:信息類型。 
0B:被叫號碼長度。 
81:被叫號碼類型。 
3106656930F1:被叫號碼,也經(jīng)過了移位處理,實際號碼為13605696031。 
0000A7:短信息編碼類型GSM Default Alphabet,如為中文則是000010。 
0B:短信息長度。 
E8329BFD06DDDF723619:短信息內(nèi)容“Hello World!”。 
短信息的編碼方法及編程實現(xiàn) 
下面我們介紹純英文和純中文的信息編碼方法。通過測試我們發(fā)現(xiàn),每條發(fā)送的短信息前面部分均相同,只是被叫號碼和短信息內(nèi)容有變化。 
1.英文編碼 
參見表2,設(shè)短信息內(nèi)容為“Hello World!”。缺省的GSM 字符集為7位編碼,可以簡單地理解為ASCII碼(ASCII值小于80Hex,因此,Bit8被忽略),依次將下一7位編碼的后幾位逐次移至前面,形成新的8位編碼,參見表2箭頭指示。需要注意的是第9行,移位計數(shù)已達(dá)7位,則直接將本編碼前加0。GSM并非支持所有的ASCII字符顯示。 
表2 英文編碼的實現(xiàn)過程 

下面是實現(xiàn)英文編碼的部分Delphi 5代碼: 
//英文格式編碼,s為String 
function Encode1(var s:String):String; 
var 
i,j,len:Integer; 
cur:Integer; 
t:String; 
begin 
Result:=‘'; 
len:=Length(s); 
//j 用于移位計數(shù) 
i:=1;j:=0; 
while i<=len do 
begin 
if i//數(shù)據(jù)變換 
cur:=(ord(s[i]) shr j) or ((ord(s[i+1]) shl (7-j)) and $ff) 
else 
cur:=(ord(s[i]) shr j) and $7f; 
FmtStr(t,‘%2.2X',[cur]); 
Result:=Result+t; 
inc(i); 
//移位計數(shù)達(dá)到7位的特別處理 
j:=(j+1) mod 7;if j=0 then inc(i); 
end; 
end;   
2.中文編碼 
參見表3,設(shè)短信息內(nèi)容為“中文短信息”。中文短信息的實現(xiàn)較簡單,只需將GB2312的中文編碼轉(zhuǎn)換為代碼頁為CP936的Unicode編碼即可。 
表3 中文編碼的實現(xiàn)過程 

通過Delphi的WideString類型轉(zhuǎn)換,可以巧妙地實現(xiàn)GB2312到Unicode的編碼轉(zhuǎn)換(注意代碼頁和操作系統(tǒng)相關(guān)聯(lián))。下面是實現(xiàn)中文編碼的部分Delphi 5代碼: 
// 中文格式編碼,s為Unicode String 
function Encode2(var s:WideString):String; 
var 
i,len:Integer; 
cur:Integer; 
t:String; 
begin 
Result:=‘'; 
len:=Length(s); 
i:=1; 
while i<=len do 
begin 
cur:=ord(s[i]); 
//BCD轉(zhuǎn)換 
FmtStr(t,‘%4.4X',[cur]); 
Result:=Result+t; 
inc(i); 
end; 
end; 
小 結(jié) 
以上介紹了PDU格式的短信息編碼。建議英文信息長度不超過140個字符,中文信息不要超過54個漢字。如果使用能夠支持文本方式的手機(jī)進(jìn)行發(fā)送,實現(xiàn)起來更簡單。如發(fā)送“Hello World!”,用如下的AT指令即可: 
AT+CGMF=1AT+CGMS=“13650246680”,129 
>Hello World!<^Z>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91影院在线免费观看| 日韩中文字幕不卡| 99re视频这里只有精品| 亚洲国产精品传媒在线观看| 成人高清视频在线| 成人免费在线观看入口| 色菇凉天天综合网| 香蕉久久夜色精品国产使用方法| 欧美日韩一区二区不卡| 蜜桃视频一区二区三区在线观看| 日韩欧美亚洲国产另类| 国模无码大尺度一区二区三区| 久久精品视频免费| voyeur盗摄精品| 一区二区久久久久久| 56国语精品自产拍在线观看| 国产综合久久久久久鬼色| 国产日韩欧美精品在线| 色老汉一区二区三区| 日韩成人免费电影| 中文字幕不卡在线| 在线观看不卡一区| 美女被吸乳得到大胸91| 中文在线资源观看网站视频免费不卡 | 一区二区三区在线视频免费| 91精品一区二区三区久久久久久| 激情小说欧美图片| 亚洲欧美日韩久久| 日韩免费成人网| 99久久精品一区| 日本sm残虐另类| 中文字幕在线一区免费| 4438x成人网最大色成网站| 国产高清在线精品| 日韩中文字幕一区二区三区| 国产亚洲婷婷免费| 7777精品伊人久久久大香线蕉的| 国产福利精品一区二区| 偷拍日韩校园综合在线| 国产偷v国产偷v亚洲高清| 欧美曰成人黄网| 国产成人综合亚洲网站| 午夜精品久久久久久久| 国产精品欧美精品| 精品国产凹凸成av人导航| 在线视频你懂得一区| 国产成人无遮挡在线视频| 亚洲国产精品综合小说图片区| 欧美激情在线看| 欧美白人最猛性xxxxx69交| 色老汉av一区二区三区| 成人在线一区二区三区| 美女视频黄频大全不卡视频在线播放| 日韩美女视频一区二区| 久久欧美中文字幕| 欧美一级欧美一级在线播放| 色国产精品一区在线观看| 成人免费av在线| 国产永久精品大片wwwapp| 亚洲成人在线网站| 亚洲精品videosex极品| 国产精品毛片高清在线完整版| 日韩三级av在线播放| 欧美日韩第一区日日骚| 色欲综合视频天天天| 成人午夜私人影院| 国产91富婆露脸刺激对白| 精品一区中文字幕| 九色|91porny| 精品亚洲成a人| 久久av中文字幕片| 久久国产免费看| 美女一区二区久久| 日韩在线播放一区二区| 日韩高清在线一区| 日本不卡一区二区三区| 婷婷综合五月天| 天堂蜜桃一区二区三区| 亚洲成av人在线观看| 亚洲国产成人va在线观看天堂| 中文字幕在线不卡一区二区三区| 国产精品蜜臀在线观看| 国产精品久久久久久久裸模| 亚洲欧洲日韩女同| 亚洲欧美一区二区不卡| 亚洲美女屁股眼交3| 一区二区三区在线免费视频| 亚洲自拍偷拍网站| 亚洲成人一区二区| 日本va欧美va瓶| 久热成人在线视频| 国产一区二区三区免费看 | 成人久久视频在线观看| 成人午夜碰碰视频| 一本一道综合狠狠老| 欧洲视频一区二区| 欧美一区二区三区视频免费| 精品美女一区二区三区| 久久久激情视频| 亚洲欧美日韩国产一区二区三区 | 久久久久久久免费视频了| 欧美经典一区二区三区| 日韩理论片一区二区| 午夜精品久久久久久久| 精品一二三四在线| av不卡免费在线观看| 欧美吞精做爰啪啪高潮| 精品区一区二区| 中文字幕日本乱码精品影院| 亚洲综合一二区| 经典三级视频一区| 成人h动漫精品一区二| 欧美亚洲日本国产| 久久久久久亚洲综合影院红桃| 中文字幕日韩一区| 免费人成黄页网站在线一区二区| 国产精品原创巨作av| 91福利视频网站| 欧美草草影院在线视频| 国产精品入口麻豆九色| 亚洲成人动漫在线观看| 国产传媒日韩欧美成人| 在线观看91精品国产入口| 精品久久久久久无| 亚洲午夜一区二区| 粉嫩高潮美女一区二区三区| 在线观看成人免费视频| 久久久三级国产网站| 亚洲尤物视频在线| 国产91精品免费| 欧美日韩国产首页| 1区2区3区精品视频| 色欧美88888久久久久久影院| 成人污视频在线观看| 欧美综合在线视频| 欧美国产禁国产网站cc| 性久久久久久久| av成人免费在线观看| 日韩欧美一级精品久久| 亚洲私人影院在线观看| 久久精品二区亚洲w码| 色哟哟在线观看一区二区三区| 日韩欧美一二三区| 亚洲超碰97人人做人人爱| 丁香天五香天堂综合| 日韩视频免费直播| 午夜视黄欧洲亚洲| 91老师片黄在线观看| 久久久99久久| 精品一区二区久久久| 欧美日本一区二区在线观看| 亚洲人快播电影网| 成人午夜看片网址| 久久天天做天天爱综合色| 日韩av二区在线播放| 欧美色偷偷大香| 亚洲精品久久久蜜桃| 91色porny在线视频| 国产精品日日摸夜夜摸av| 国产经典欧美精品| 国产日韩欧美不卡| 精品在线一区二区三区| 7799精品视频| 蜜桃久久精品一区二区| 欧美喷潮久久久xxxxx| 亚洲午夜精品在线| 欧美日韩视频第一区| 午夜私人影院久久久久| 欧美日韩午夜精品| 日韩一区欧美二区| 欧美一区二区三区视频在线观看| 午夜视频在线观看一区二区三区| 欧美婷婷六月丁香综合色| 亚洲一区视频在线| 欧美精品三级日韩久久| 午夜免费久久看| 日韩一区二区免费在线观看| 日韩精品乱码免费| 欧美成人高清电影在线| 日本视频在线一区| 欧美电影免费观看完整版| 捆绑调教一区二区三区| 久久九九国产精品| 波多野结衣欧美| 亚洲精品欧美激情| 337p亚洲精品色噜噜狠狠| 日本欧美在线观看| 久久久亚洲精品一区二区三区| 国产精品亚洲人在线观看| 国产精品久久毛片av大全日韩| 色婷婷av一区二区三区大白胸| 亚洲成a人片在线不卡一二三区| 在线播放中文字幕一区| 激情综合色综合久久综合| 欧美经典一区二区| 日本精品裸体写真集在线观看 | 国产一区二区三区最好精华液| 国产亚洲欧美一区在线观看| bt7086福利一区国产| 亚洲午夜成aⅴ人片|