鴿子 例如短資訊中心號碼為深圳 +8613800755500
對方手機號碼為 +8613612345678
要傳送的資訊為「中」
演算法步驟:
一、位址部分,用字串 addr 表示
1、將短資訊中心號碼去掉+號,看看長度是否為偶數,如果不是,最後新增f
即 addr = "+8613800755500"
=> addr = "8613800755500f"
2、將奇數字和偶數字交換。
=> addr = "683108705505f0"
3、將短資訊中心號碼前面加上字元91,91是國際化的意思
=> addr = "91683108705505f0"
4、算出 addr 長度,結果除2,格式化成2位的16進製制字串,16 / 2 = 8 => "08"
=> addr = "0891683108705505f0"
二、手機號碼部分,用字串 phone
1、將手機號碼去掉+號,看看長度是否為偶數,如果不是,最後新增f
即 phone = "+8613612345678"
=> phone = "8613612345678f"
2、將手機號碼奇數字和偶數字交換。
=> phone = "683116325476f8"
三、簡訊息部分,用字串 msg 表示
1、轉字串轉換為unicode**,例如「中」的unicode**為 4e2d,
(好像是將中字的ascii碼分開,分別轉成16進製制)。因為我用delphi,
請vb朋友自己找例子,網上應該許多
function tfrmmain.str_gb2unicode( text: string ): string;
vari,j,len:integer;
cur:integer;
t:string;
ws:widestring;
begin
result:='';
ws := text;
len := length(ws);
i := 1;
j := 0;
while i <= len do
begin
cur := ord(ws[i]);
fmtstr(t,'%4.4x',[cur]); //bcd轉換
result := result+t;
inc(i);
//移位計數達到7位的特別處理
j := (j+1) mod 7;
end;
end;
即 msg = "中"
即 msg = str_gb2unicode( msg )
=> msg = "4e2d"
2、將 msg 長度除2,保留兩位16進製制數,即 4e2d = 4 / 2 => "02",再加上 msg
=> msg = "024e2d"
四、組合
1、手機號碼前加上字串 11000d91,這是一些pdu**,寫死就行了,感興趣可以參考相關pdu格式說明
即 phone = "11000d91" + phone
=> 11000d9168683116325476f8
再超級終端演示如下
組成分析:0891683110808805f0(0891+資訊中心)+11000d91+683162071959f0(手機號)+000800+024e2d
微信JSSDK開發資訊配置
但是很多人在配置和使用的時候,老是出各種錯誤。最近專案也涉及到這個,就記錄一下過程,並對方法進行封裝。基本步驟如下 1.繫結網域名稱 先確保你使用的是認證的賬號 訂閱號,服務號 wx.config 4.通過ready介面處理成功驗證 config資訊驗證後會執行ready方法,所有介面呼叫都必須在c...
精益敏捷外包開發 資訊傳遞篇
前言 本文主要是在講述精益敏捷外包開發,為何應捨棄 過重的文件 而應改採 視覺化的看板 方能有效的整合來自不同企業,位於不同辦公區的軟體外包人員,而能共同高效的完畢高質量的交付 本文 企業的 it 部門,將產品的系統,外包給不同企業,位於不同辦公區的開發與測試人員時,所面臨的乙個最大的難題之中的乙個...
收發資訊設計 指標作輸入輸出
include include include int handleini void handle out int socketsend void handle in char msg in int len in int socketreci void handle in char msg out ...