将特殊字符发送到串行端口

时间:2013-09-16 16:41:52

标签: c# winforms encoding serial-port

我有一个允许交换消息的应用程序,我正在尝试发送带有特殊字符的字符串

string my_str = "isto não está a funcionar! (pt)";
comPort1.Write(my_str);

但我收到isto n?o est? a funcionar! (pt)

我之前试过放comPort1.Encoding = Encoding.UTF8;但它还没有工作。我尝试了不同的编码。

1 个答案:

答案 0 :(得分:4)

如果将字符串的编码字节写入端口,它们将被正确发送。 这段代码将为您解决问题:

string my_str = "isto não está a funcionar! (pt)";
byte[] my_bytes = System.Text.Encoding.UTF8.GetBytes(str);
comPort1.Write(my_bytes, 0, my_bytes.Length);