wie zum senden von unicode-Zeichen mit der serial port in C#?
wie versende ich unicode-Zeichen(16 bit) auf die serielle Schnittstelle in C#? Daten-bit-rate für die serielle maximal 8 bit und ich brauche zum senden von 16-bit-Zeichen.
Bearbeiten
Wenn ich send 'ş', es wird gesendet, wie '_'
byte[] bt = Encoding.Unicode.GetBytes("ş");
string str = Encoding.UTF8.GetString(bt);
serialport.write(str);
- Sie haben eine Breite Auswahl von Kodierungen (UTF7, UTF8, UTF16). Der Punkt ist nicht, was die andere Seite zu verstehen/erwarten?
- wie Sie wissen, es ist "senden als"'_'? Ist es das, was Sie empfangen -> Ihre Decodierung der Nachricht falsch. Kannst du etwas code, wie Sie es zu senden, und wie Sie es erhalten haben.
- Ich poste den code in einer minute
- das Gerät, das angeschlossen ist, über serialport ist das senden von sms-Nachricht. Ich erhalte '-' aus sms, wenn ich senden 'ş'
- Ich hoffe, Sie sind nicht mit dieser nur auf der sendenden Seite. Es sieht aus wie Sie die Konvertierung in bytes dann wieder in einen string und dann schicken Sie es.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie mindestens zwei Dinge:
Irgendwann, wenn Sie Zustimmen, senden, LSB zuerst, Sie könnte verwenden
Encoding.Unicode.GetBytes(<mystring>)
, aber Sie müssen noch darüber klar werden, das framing (der zweite Punkt oben).Würden Sie wahrscheinlich besser mit UTF8, anstatt UCS16 ('unicode'), als diese beschäftigen sich mit all diesen Fragen für Sie.
Senden Sie uns einfach Ihre Daten als ein Strom von bytes, eins nach dem anderen.
Verwenden Sie die
SerialPort
Klasse von .NET Framework und könnten SieWrite
MethodeSyntax:
Beispiel:
SerialPort.Write("love, peace and chocolates");
SerialPort.Write-Methode auf msdn.
Du tust:
Aber sollten Sie nicht tun es anders:
Havent getestet/kompiliert, dies ist aber eine grobe Vorstellung.
Oder verwenden Sie die encoding-Eigenschaft der SerialPort