我已经能发英文短信了  如何发送中文短信? 大哥谁告诉我下面代码 那里 怎么修改 谢谢
小弟菜鸟,望前辈修改后 回复完整代码谢谢
Private Sub Command3_Click()
   Dim i As Integer
   If Trim(Text1.Text) = "" Then
      MsgBox "ÐÅÏ¢²»ÄÜΪ¿Õ"
      Exit Sub
   End If
   
   For i = 0 To List1.ListCount - 1
      Sendsms "+8613800100500", List1.List(i), Text1.Text
   Next
   MsgBox "ÐÅÏ¢·¢Ëͳɹ¦"
End SubPrivate Sub Command4_Click()
  End
End SubPrivate Sub Form_Load()
       MSComm1.CommPort = 4
        MSComm1.Settings = "460800,N,8,1" 
        MSComm1.InputLen = 0 
        MSComm1.PortOpen = True
End Sub
Private Sub Sendsms(csca As String, num As String, msg As String) '·¢ËÍÐÅÏ¢    Dim pdu, psmsc, pnum, pmsg As String    Dim leng As String    Dim length As Integer    length = Len(msg)    length = 2 * length    leng = Hex(length)    If length < 16 Then leng = 0 & leng    psmsc = Trim(telc(csca))    pnum = Trim(telc(num))    pmsg = Trim(chg(msg))    pdu = prex & psmsc & midx & pnum & sufx & leng & pmsg   MSComm1.Output = "AT+CMGF=0" + vbCr
    MSComm1.Output = "AT+CMGS=" & Str(15 + length) + vbCr    MSComm1.Output = pdu & Chr$(26)
End Sub
--------------------------------------------------------------
下面是Module1.bas 中的代码
Option ExplicitPublic Function telc(num As String) As StringDim tl As IntegerDim ltem, rtem, ttem As StringDim ti As Integertl = Len(num)If tl <> 11 And tl <> 13 Then    Exit Function
End IfIf tl = 11 Then    tl = tl + 2    num = 86 & numEnd IfFor ti = 1 To tl Step 2  ltem = Mid(num, ti, 1)  rtem = Mid(num, ti + 1, 1)  If ti = tl Then rtem = "F"  ttem = ttem & rtem & ltemNext titelc = ttemEnd FunctionPublic Function chg(rmsg As String) As StringDim tep As StringDim temp As StringDim i As IntegerDim b As Integertep = rmsgi = Len(tep)b = i / 4If i = b * 4 Then    b = b - 1     tep = Left(tep, b * 4)Else           tep = Left(tep, b * 4)End If
For i = 1 To b temp = "H" & Mid(tep, (i - 1) * 4 + 1, 4)     chg = chg & ChrW(CInt(Val(temp)))Next iEnd Function

解决方案 »

  1.   

    去查一下PDU编码的相关文章吧
      

  2.   

    插上自己手机 找到端口号 用下面代码 就能发英文的  中文我还不会  大哥们帮帮我啊
    马上毕设验机了  
    MSComm1.CommPort = 4   
            MSComm1.Settings = "9600,N,8,1"
            MSComm1.InputLen = 0
            MSComm1.PortOpen = True
            MSComm1.Output = "AT+CMGF=1" + vbCr
            MSComm1.Output = "AT+CSCA=" & Chr$(34) & 8613800100500# & Chr$(34) & ",129" + vbCr
        
        MSComm1.Output = "AT+CMGS=" & Chr$(34) & Text1.Text & Chr$(34) & ",129" + vbCr    '
        
        MSComm1.Output = Text2.Text & Chr$(26)