我想通過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 奇偶校驗:無
@喬恩賽格爾 - 我注意到你重新標記清理`serial`和`port`標籤。我認爲最喜歡的標籤實際上是`串行端口`。感謝您的清理! – mtrw 2010-03-20 20:17:22