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
<> 0 Then
For i = 1 To 8 - (t.Length Mod
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 =-》版权所有,转载时必须以链接形式注明作者和原始出处及本声明。
你可能也想看看:
问问你呢,你有解析过
截取于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
因为这部分是数据信息,所以经常短信内容都为乱码,也没有其相应字母表,不知道如何对其进行解析?
我找到了一下也没有找到这部分资料,所以想想你呢?谢谢
@xinyan766
不好意思我很久都没有做短信这方面的研究了,所以对你的问题也无法回答。你可以找寻一下EMS相关的信息,或许可以找到答案。