程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> .Net UCS2 加碼最簡單的方法(適用於中文短信)

.Net UCS2 加碼最簡單的方法(適用於中文短信)

編輯:.NET實例教程

大家好!我是Venox10111, 是新來這兒的老網蟲了,hoho,如果覺得這個網名別扭也可以叫南非黑帥啊,嘿嘿,誰叫人家從南非來又和古天樂一樣黑,一樣帥拉(看見你冒汗了)

 

Anyway,第一次發帖,太簡單的話題不好,難度太大的也不好,我們今天就來一個比較實用又簡單的吧。

 

最近開發了一個短信 Gateway 應用方案,雖然是不用 PDU 那麼麻煩,但畢竟要發中文短信的話得用加碼的羅(BTW,最後都不需要用這個功能)

編程文檔詳細的指名要用 UCS2 加碼,Ok, UTF8 和 16 大家都不陌生吧,但什麼是 UCS2 呢?在這裡粗略的解釋一下,摘的

UCS有兩種格式:UCS-2和UCS-4。顧名思義,UCS-2就是用兩個字節編碼,UCS-4就是用4個字節(實際上只用了31位,最高位必須為0)編碼。下面讓我們做一些簡單的數學游戲:

UCS-2有2^16=65536個碼位,UCS-4有2^31=2147483648個碼位。

UCS-4根據最高位為0的最高字節分成2^7=128個group。每個group再根據次高字節分為256個plane。每個plane根據第3個字節分為

>256行 (rows),每行包含256個cells。當然同一行的cells只是最後一個字節不同,其余都相同。

group 0的plane 0被稱作Basic Multilingual Plane, 即BMP。或者說UCS-4中,高兩個字節為0的碼位被稱作BMP。

將UCS-4的

E: 10pt; COLOR: #4b4b4b; LINE-HEIGHT: 160%">BMP去掉前面的兩個零字節就得到了UCS-2。在UCS-2的兩個字節前加上兩個零字節,就得到了UCS-4的BMP。而目前的UCS-4規范中還沒有任何字符被分配在BMP之外。

經過了無數次的嘗試,我用以下代碼完成了這個加碼的 function, 測試通過,童叟無欺哦

 


 Private Function StrtoUCS2(ByVal Content As String) As String
學網 http://www.xue5.com (本站) [1] [2] [3] [4] [5] [6]

homa" color="#000000">        Dim i, count As Integer
        Dim Result, t As String
        For i = 1 To Content.Length

            t = Format(AscW(Mid(Content, i)), "X"
)
            For count = 1 To

#000000"> 4 - t.Length
                t = "0" &
 t
            Next

            Result += t
        Next

        Return Result
    End Function

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved