C#中的SerialPort无法正确发送扩展ASCII字符

时间:2019-06-13 19:09:54

标签: c# serial-port non-ascii-characters

我在C#中使用SerialPort,却发现我无法发送扩展的ASCII字符。

如果我发送的char小于128,则会正确传输,否则我总是传输0x3F

comport.Write(((char)127).ToString());  ///I receive 0x7F 
comport.Write(((char)128).ToString());  ///I receive 0x3F

是否有允许我将字符从0x00发送到0xFF的特定设置?

1 个答案:

答案 0 :(得分:3)

来自docs

  

默认情况下,SerialPort使用ASCIIEncoding编码字符。 ASCIIEncoding将大于127的所有字符编码为(char)63或'?'。要支持该范围内的其他字符,请将Encoding设置为UTF8Encoding,UTF32Encoding或UnicodeEncoding。

因此,您应该只更改Encoding对象的comport属性。

相关问题