2014-05-05 85 views
1

在監控發送到設備的數據我得到這個: http://i.stack.imgur.com/u0kIT.png將數據寫入串行端口,發送錯誤的字符

但我相信一個字:F0 d

public void WritingDataToPort() { 
     SerialPort port = new SerialPort("COM26"); 
     try { 
      System.out.println(port.openPort()); 
      port.setParams(9600, 8, 1, 0); 
      port.writeString((char)240+"")); 
      port.closePort(); 
     } catch (SerialPortException ex) { 
      System.out.println(ex); 
     } 
} 

我完全地不知道如何發送這個「ð」字符。嘗試了所有ASCII代碼。

回答

2

通過串口你不能只發送字符(或UTF8)。你必須轉換它。 首先獲取UTF-8中char的長度,然後獲取字節併發送字節。

獲取UTF-8的大小:Getting the actual length of a UTF-8 encoded std::string?

一個然後發送一個。另一方面,你需要一些東西來組裝它們。

你也可以考慮使用一個更好的選擇直接寫入字節到端口,只有使用方法writeIntArray如http://code.google.com/p/java-simple-serial-connector/

+0

作品。試過C/C++/Java源代碼「\ u00F0」但不起作用。謝謝,我錯過了。 – siulkilulki