تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
ممكن مساعدة في ارسال رسالة بي لغة العربية
#1
عند ارسال رسالة الي الجوال تظهر  علي شكل ؟؟؟؟؟؟؟؟؟؟؟
كود :
       Dim message As String
       message = RichTextBox1.Text
       SerialPort1.Open()
       If SerialPort1.IsOpen() Then
           SerialPort1.Write("AT" & vbCrLf)
           SerialPort1.Write("AT+CMGF=1" & vbCrLf)
           SerialPort1.Write("AT+CMGS=" & Chr(34) & TextBox1.Text & Chr(34) & vbCrLf)
           SerialPort1.Write(message & Chr(26))
           MsgBox("يتم الارسال")
       Else
           MsgBox("لم يتم")
       End If
الرد }}}
تم الشكر بواسطة:
#2
جرب استبدال السطر التالي :


كود :
message = RichTextBox1.Text


بهذا :


كود :
message = Encoding.UTF8.GetString(RichTextBox1.Text)
الرد }}}
تم الشكر بواسطة: الزوي , elgokr , elgokr , Null , Null
#3
يوجد error 
        Dim message As String
        message = Encoding.UTF8.GetString(RichTextBox1.Text)
        SerialPort1.Open()
        If SerialPort1.IsOpen() Then
            SerialPort1.Write("AT" & vbCrLf)
            SerialPort1.Write("AT+CMGF=1" & vbCrLf)
            SerialPort1.Write("AT+CMGS=" & Chr(34) & TextBox1.Text & Chr(34) & vbCrLf)
            SerialPort1.Write(message & Chr(26))
            MsgBox("يتم الارسال")
        Else
            MsgBox("لم يتم")
        End If
    End Sub
الرد }}}
تم الشكر بواسطة:
#4
تعدل على الاخ حريف البرمجة
كود :
Message = Encoding.Unicode.GetString(Encoding.UTF8.GetBytes(RichTextBox1.Text))
جرب تغير في الترميز UTF8 وUnicode و التبديل بينهم
الرد }}}
تم الشكر بواسطة: elgokr , الزوي
#5
البرنامج لا يرسل 
كود :
       Dim message As String
       message = Encoding.Unicode.GetString(Encoding.UTF8.GetBytes(RichTextBox1.Text))
       SerialPort1.Open()
       If SerialPort1.IsOpen() Then
           SerialPort1.Write("AT" & vbCrLf)
           SerialPort1.Write("AT+CMGF=1" & vbCrLf)
           SerialPort1.Write("AT+CMGS=" & Chr(34) & TextBox1.Text & Chr(34) & vbCrLf)
           SerialPort1.Write(message & Chr(26))

           MsgBox("يتم الارسال")
       Else
           MsgBox("لم يتم")
       End If
   End Sub
الرد }}}
تم الشكر بواسطة:
#6
جرب UTF7 بدلا من Unicode


مش فاهم ردك
(11-08-18, 12:18 AM)الزوي كتب : البرنامج لا يرسل 
الرد }}}
تم الشكر بواسطة: الزوي
#7
انت شوف البرنامج  لا يعمل ارسال الرسالة كيف قبل 
كود :
Imports System.IO.Ports
Imports System.Text

Public Class Form1
   Dim SerialPort1 As New System.IO.Ports.SerialPort()
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       SerialPort1.PortName = "COM4"
       SerialPort1.BaudRate = 9600
       SerialPort1.Parity = Parity.None
       SerialPort1.StopBits = StopBits.One
       SerialPort1.DataBits = 8
       SerialPort1.Handshake = Handshake.RequestToSend
       SerialPort1.DtrEnable = True
       SerialPort1.RtsEnable = True
       SerialPort1.NewLine = vbCrLf

   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

       Dim message As String
       message = Encoding.UTF7.GetString(Encoding.UTF8.GetBytes(RichTextBox1.Text))
       SerialPort1.Open()
       If SerialPort1.IsOpen() Then
           SerialPort1.Write("AT" & vbCrLf)
           SerialPort1.Write("AT+CMGF=1" & vbCrLf)
           SerialPort1.Write("AT+CMGS=" & Chr(34) & TextBox1.Text & Chr(34) & vbCrLf)
           SerialPort1.Write(message & Chr(26))

           MsgBox("يتم الارسال")
       Else
           MsgBox("لم يتم")
       End If
   End Sub


End Class
الرد }}}
تم الشكر بواسطة:
#8
جرب هذا التعديل
كود :
Imports System.IO.Ports
Imports System.Text

Public Class Form1

   Dim SerialPort1 As New System.IO.Ports.SerialPort()

   Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
       SerialPort1.PortName = "COM4"
       SerialPort1.BaudRate = 9600
       SerialPort1.Parity = Parity.None
       SerialPort1.StopBits = StopBits.One
       SerialPort1.DataBits = 8
       SerialPort1.Handshake = Handshake.RequestToSend
       SerialPort1.DtrEnable = True
       SerialPort1.RtsEnable = True
       SerialPort1.NewLine = vbCrLf

   End Sub

   Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
       Dim message As String = ConvertUTF8ToCUSD2(RichTextBox1.Text)
       SerialPort1.Open()
       If SerialPort1.IsOpen() Then
           SerialPort1.Write("AT" & vbCrLf)
           SerialPort1.Write("AT+CUSD=2" & vbCrLf)
           SerialPort1.Write("AT+CMGF=1" & vbCrLf)
           SerialPort1.Write("AT+CMGS=" & Chr(34) & TextBox1.Text & Chr(34) & vbCrLf)
           SerialPort1.Write(message & Chr(26))

           MsgBox("يتم الارسال")
       Else
           MsgBox("لم يتم")
       End If
   End Sub

   Public Function ConvertUTF8ToCUSD2(s As String) As String
       Dim code As String = String.Empty
       For Each c As Char In s.ToCharArray
           code &= AscW(c).ToString("X4")
       Next
       Return code
   End Function

End Class
الرد }}}
تم الشكر بواسطة: الزوي , elgokr
#9
شكرا يا اخي علي الرد لكن نفس الشي لا يتم ارسال الرسالة الي الجوال
الرد }}}
تم الشكر بواسطة:
#10
ضع الكود الاول الذي تقول فيه (عند ارسال رسالة الي الجوال تظهر علي شكل ؟؟؟؟؟؟؟؟؟؟؟)

الارسال من الجوال مكلف،
لماذا لا تستخدم رسائل SMS عن طريق الانترنت، فهي أرخص بكثير
مثل شركة https://www.mobily.ws
الرد }}}
تم الشكر بواسطة: الزوي



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم