שליחת טקסט בעברית לserialport בc#
-
הכנתי תוכנה פשוטה שמתחברת לנוקיה דרך סריאל פורט (בבלוטוס בד"כ) ושולחת sms. אך טקסט בעברית הופך לסימני שאלה
הפתרונות שמצאתי כאן לא עזרו לי
הקוד הרלוונטי:private SerialPort port = new SerialPort(); private void btnSend_Click(object sender, EventArgs e) { port.PortName = cmbPorts.SelectedItem.ToString(); try { port.Open(); port.WriteLine("AT+CMGF=1\r"); port.WriteLine($"AT+CMGS=\"{txtTel.Text}\"\r"); port.WriteLine($"{txtMsg.Text}\x1A"); port.Close(); } catch (Exception ex) { if (MessageBox.Show(ex.Message, "שגיאה", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error, MessageBoxDefaultButton.Button2, MessageBoxOptions.RightAlign | MessageBoxOptions.RtlReading) == DialogResult.Retry) btnSend.PerformClick(); } }
תודה רבה, אשריכם
-
@נ-נח השתמשתי בCom0Com בשביל לדמות זוג פורטים וירטואלים.
הרמתי Instance של הקוד דלהלן עבור כל אחד מהפורטים:
static void Main() { var names = SerialPort.GetPortNames(); Console.WriteLine("Serial ports, Select one:"); foreach (string name in names) Console.WriteLine(name); SerialPort p = new SerialPort(Console.ReadLine()) { Encoding = System.Text.Encoding.UTF8 }; p.DataReceived += (object sender, SerialDataReceivedEventArgs e) => { Console.WriteLine($"Data Received: {(sender as SerialPort).ReadExisting()}"); }; p.Open(); Console.WriteLine("Send data:"); for (string line; (line = Console.ReadLine()) != "quit";) p.WriteLine(line); p.Close(); }