用Java编写Rs232连接中的特殊字符

用Java编写Rs232连接中的特殊字符,java,serial-port,special-characters,Java,Serial Port,Special Characters,我需要在rs232连接中发送一些特殊字符,但我遇到了麻烦 例如,当我想发送字符时,我写: OutputStream outputStream = null; outputStream.write("\u00BF".getBytes()); outputStream.flush(); 接收者接收到两个字符,我不知道为什么。 当我发送正常字符时,所有字符都运行良好 有人知道怎么回事吗? 谢谢。解决了 我检测到在“\u00BF”的零位置,getBytes()具有字符。 为什么?我不知道 因此,我只写

我需要在rs232连接中发送一些特殊字符,但我遇到了麻烦

例如,当我想发送字符时,我写:

OutputStream outputStream = null;
outputStream.write("\u00BF".getBytes());
outputStream.flush();
接收者接收到两个字符,我不知道为什么。 当我发送正常字符时,所有字符都运行良好

有人知道怎么回事吗? 谢谢。

解决了

我检测到在“\u00BF”的零位置,getBytes()具有字符。 为什么?我不知道

因此,我只写第一个位置:

OutputStream outputStream = null;
outputStream.write("\u00BF".getBytes()[1]);
outputStream.flush();
这只发生在特殊字符中,在正常情况下我可以写零位。
谢谢

收到的是什么?硬件、第三方软件还是您的软件?对于标准字母表,它工作正常吗?或者跳过整个字符串并写出字节,因为您已经知道代码
outputStream.write(0xbf)接收器是另一台电脑中的一个终端。是的,对于标准字母表,它工作正常。您正在发送一个双字节Unicode字符,您说接收端将其视为两个字符。我怀疑在这个过程中会有一些东西将这些字符视为8位字符,可能是ASCII,甚至可能是7位字符。我不知道字符00将如何在ASCII或您的系统上呈现,但它可能值得研究。尝试发送0x3132,查看是否获得字符“1”和“2”。当我发送0x3132时,只接收字符“2”。