读取串口时的字符编码

时间:2018-05-17 12:10:11

标签: java character-encoding

我正在使用Java来读取连接到称重机的串口。称重机以N + 10 kg格式发送数据,其中10千克部分由称重秤上的重量改变。

目前,我能够收听SerialPort事件,并将来自串口的数据作为InputStream.获取,但我得到的数据是未知字符,类似于N?????+????????0???(这应该是N + 60 kg,这意味着所有空格都被问号替换,与6kg相同。这适用于所有权重。

我试图改变InputStream的字符编码,但我只得到另一个未知字符(如方形)来代替问号。

以下是我使用过的代码段。

InputStream is = thisPort.getInputStream();
while (true) {
   BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
   String nextLine;
   try {
       nextLine = reader.readLine();
       System.out.println(nextLine);
   } catch (Exception e) {
       System.err.println(e.getMessage());
       if (e.getMessage().contains("shutdown or disconnected")) break;
   }
}

请注意我使用jSerialComm jar来读取串口和Java 8.

请让我知道我做得不对,因为我真的被卡住了。

0 个答案:

没有答案