Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#中的串行端口不';无法正确发送扩展ASCII字符_C#_Serial Port_Non Ascii Characters - Fatal编程技术网

C#中的串行端口不';无法正确发送扩展ASCII字符

C#中的串行端口不';无法正确发送扩展ASCII字符,c#,serial-port,non-ascii-characters,C#,Serial Port,Non Ascii Characters,我在C#中使用SerialPort,发现无法发送扩展ASCII字符 如果我发送的字符低于128,则会正确传输,否则我将始终传输0x3F comport.Write(((char)127).ToString()); ///I receive 0x7F comport.Write(((char)128).ToString()); ///I receive 0x3F 是否有特定设置允许我将字符从0x00发送到0xFF?来自: 默认情况下,SerialPort使用AscienceODing对字符

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

如果我发送的字符低于128,则会正确传输,否则我将始终传输0x3F

comport.Write(((char)127).ToString());  ///I receive 0x7F 
comport.Write(((char)128).ToString());  ///I receive 0x3F
是否有特定设置允许我将字符从0x00发送到0xFF?

来自:

默认情况下,SerialPort使用AscienceODing对字符进行编码。AscienceODing将大于127的所有字符编码为(字符)63或“?”。要支持该范围内的其他字符,请将编码设置为UTF8Encoding、UTF32Encoding或Unicode编码

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

来自:

默认情况下,SerialPort使用AscienceODing对字符进行编码。AscienceODing将大于127的所有字符编码为(字符)63或“?”。要支持该范围内的其他字符,请将编码设置为UTF8Encoding、UTF32Encoding或Unicode编码


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

如果我更改为
comport.Write((byte)128.ToString()),请使用
byte
..@DanielA.White
我发送3个字符:“1”、“2”、“8”不调用
.ToString()
如果我更改为
comport.Write((byte)128).ToString()),请使用
byte
..@DanielA.White我发送了3个字符:“1”、“2”、“8”不要呼叫
.ToString()
谢谢!经过一些测试,我注意到对我来说正确的编码是以下
comport.encoding=encoding.GetEncoding(28591)谢谢!经过一些测试,我注意到对我来说正确的编码是以下
comport.encoding=encoding.GetEncoding(28591)