我在C#中使用SerialPort,却发现我无法发送扩展的ASCII字符。
如果我发送的char小于128,则会正确传输,否则我总是传输0x3F
comport.Write(((char)127).ToString()); ///I receive 0x7F
comport.Write(((char)128).ToString()); ///I receive 0x3F
是否有允许我将字符从0x00发送到0xFF的特定设置?
答案 0 :(得分:3)
来自docs:
默认情况下,SerialPort使用ASCIIEncoding编码字符。 ASCIIEncoding将大于127的所有字符编码为(char)63或'?'。要支持该范围内的其他字符,请将Encoding设置为UTF8Encoding,UTF32Encoding或UnicodeEncoding。
因此,您应该只更改Encoding
对象的comport
属性。