Encode Charactors to 7BitCode or UCS2 PDU string (vb.net)

Encode Charactors to 7BitCode or UCS2 PDU string (vb.net)

Public Function Encode7Bit(ByVal Content As String) As String
'Prepare
Dim CharArray As Char() = Content.ToCharArray
Dim c As Char
Dim t As String
For Each c In CharArray
t = CharTo7Bits(c) + t
Next
'Add "0"
Dim i As Integer
If (t.Length Mod 8) <> 0 Then
For i = 1 To 8 - (t.Length Mod 8)
t = "0" + t
Next
End If
'Split into 8bits
Dim result As String
For i = t.Length - 8 To 0 Step -8
result = result + BitsToHex(Mid(t, i + 1, 8))
Next
Return result
End Function

Private Function BitsToHex(ByVal Bits As String) As String
'Convert 8Bits to Hex String
Dim i, v As Integer
For i = 0 To Bits.Length - 1
v = v + Val(Mid(Bits, i + 1, 1)) * 2 ^ (7 - i)
Next
Dim result As String
result = Format(v, "X")
If result.Length = 1 Then
result = "0" + result
End If
Return result
End Function

Private Function CharTo7Bits(ByVal c As Char) As String
Dim Result As String
Dim i As Integer
For i = 0 To 6
If (Asc(c) And 2 ^ i) > 0 Then
Result = "1" + Result
Else
Result = "0" + Result
End If
Next
Return Result
End Function

Private Function EncodeUCS2(ByVal Content As String) As String
Dim i, j, v As Integer
Dim Result, t As String
For i = 1 To Content.Length Step 4
v = AscW(Mid(Content, i, 4))
t = Format(v, "X")
For j = 1 To 4 - t.Length
t = "0" & t
Next
Result += t
Next
Return Result
End Function

作者:april1985

原文链接:http://www.april1985.com/2004/09/28/encode-charactors-to-7bitcode-or-ucs2-pdu-string-vbnet/

《-= April 1985 =-》版权所有,转载时必须以链接形式注明作者和原始出处及本声明。

你可能也想看看:

  1. .NET 2.0数据绑定纯粹是垃圾
  2. URL Rewrite解决安装访问安装在根目录的Wordpress的子目录出现404的问题

    • xinyan766
    • January 26th, 2010

    问问你呢,你有解析过
    截取于GSM0338
    8 bit data
    8 bit data is user defined
    SMS User Data Length meaning: Number of octets
    Padding: CR in the case of an 8 bit character set
    Otherwise - user defined
    Character table: User Specific
    因为这部分是数据信息,所以经常短信内容都为乱码,也没有其相应字母表,不知道如何对其进行解析?

    我找到了一下也没有找到这部分资料,所以想想你呢?谢谢

  1. @xinyan766
    不好意思我很久都没有做短信这方面的研究了,所以对你的问题也无法回答。你可以找寻一下EMS相关的信息,或许可以找到答案。

  1. No trackbacks yet.