سلام از کدینگ uft-8 و unicode استفاده کنید

sub send
Dim port As New SerialPort()
port.PortName = p_strPortName
'COM1
port.BaudRate = p_uBaudRate
'9600
port.DataBits = p_uDataBits
'8
port.StopBits = StopBits.One
'1
port.Parity = Parity.None
'None
port.ReadTimeout = p_uReadTimeout
'300
port.WriteTimeout = p_uWriteTimeout
'300
port.Encoding = Encoding.GetEncoding("utf-8")
AddHandler port.DataReceived, New SerialDataReceivedEventHandler(AddressOf port_DataReceived)
port.Open()
port.DtrEnable = True
port.RtsEnable = True
Dim recievedData As String = ExecCommand(port, "AT", 300, "No phone connected")
recievedData = ExecCommand(port, "AT+CSCS=""HEX""", 300, "Failed to set message format.")
recievedData = ExecCommand(port, "AT+CSMP=17,167,0,8", 300, "Failed to set message format.")
dim PhoneNo as string="+989151609707"
dim Message as string="سلام"
Dim recievedData As String = ExecCommand(port, "AT", 300, "No phone connected")
recievedData = ExecCommand(port, "AT+CMGF=1", 300, "Failed to set message format.")
Dim command As [String] = "AT+CMGS=""" & PhoneNo & """"
recievedData = ExecCommand(port, command, 300, "Failed to accept phoneNo")

Dim uni As New UnicodeEncoding()
Dim encodedBytes As Byte() = uni.GetBytes(Message)
Dim text As String = ""
For i As Integer = 0 To encodedBytes.Length - 1 Step 2
text += String.Format("{0:X2}", encodedBytes(i + 1)) & String.Format("{0:X2}", encodedBytes(i))
Next
command = text & Char.ConvertFromUtf32(26) & vbCr
recievedData = ExecCommand(port, command, 3000, "Failed to send message")
end sub
'---------------------------------------------------------------------------
Public Function ExecCommand(ByVal port As SerialPort, ByVal command As String, ByVal responseTimeout As Integer, ByVal errorMessage As String) As String
Try

port.DiscardOutBuffer()
port.DiscardInBuffer()
receiveNow.Reset()
port.Write(command & vbCr)

Dim input As String = ReadResponse(port, responseTimeout)
If (input.Length = 0) OrElse ((Not input.EndsWith(vbCr & vbLf & "> ")) AndAlso (Not input.EndsWith(vbCr & vbLf & "OK" & vbCr & vbLf))) Then
Throw New ApplicationException("No success message was received.")
End If
Return input
Catch ex As Exception
Throw ex
End Try
End Function

امتحان کردم کار میکنه !