我正在尝试通过 Java 从 Windows 串行端口读取数据。我有 javax.comm 库并且能够获取一些数据但不正确的数据。当我将端口读入字节数组并将其转换为文本时,我得到一系列字符,但没有真正的文本字符串。我试图将字节数组指定为“UTF-8”和“US-ASCII”。有谁知道如何从中获取真实文本?
这是我的代码:
while (inputStream.available() > 0) {
int numBytes = inputStream.read(readBuffer);
System.out.println("Reading from " + portId.getName() + ": ");
System.out.println("Read " + numBytes + " bytes");
}
System.out.println(new String(readBuffer));
System.out.println(new String(readBuffer, "UTF-8"));
System.out.println(new String(readBuffer, "US-ASCII"));
前三行的输出不会让我复制和粘贴(我假设因为它们不是普通字符)。这是十六进制的输出:78786000e67e9e60061e8606781e66e0869e98e086f89898861878809e1e9880
我正在从一个以字符串格式输出的 Hollux GPS 设备读取数据。我肯定知道这一点,因为我是通过 C# 完成的。
我在 C# 应用程序中使用的通信设置是:波特率:9600 数据位:8 停止位:1 奇偶校验:无