簡體   English   中英

Java讀卡器出現亂碼

[英]Java card reader garbled

我有一台便宜的磁卡讀卡器,它的作用就像鍵盤一樣。 我將其連接並刷卡,然后它將所有卡數據輸入計算機。 但是由於某種原因,它在Java中不起作用。 它確實可以在我嘗試過的所有非Java語言中使用。

卡上的內容(SO編輯器中實際刷卡的內容):

;00548757802?

使用Java時:

;0◘)P87┼7\02?
_005487578D♥
;005487G802?
_005*J657802{
♣00548I5♣802?
;≥T548757♠╢·?
≥T54875I↑:?

如您所見,每次都不同。 但是,閱讀器會在數據之后發送換行符,Java確實可以識別出換行符。

我的讀取輸入代碼:

// Bound to a JTextField
public void keyTyped(KeyEvent e) {
    System.out.print(e.getKeyChar());
}

JTextField也顯示亂碼。

這有什么問題,我該如何解決?

看起來您已經向JTextField添加了KeyListener ,它使用了特定於每個平台的鍵綁定 而是使用BufferedReader讀取System.in ; readLine()方法應該能夠檢測到行尾。

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

為了避免阻塞事件調度線程 ,請在SwingWorker的后台進行I / O,在可用時publish() ,並在process()實現中更新JTextField

好吧,我知道了。 我便宜的15美元讀卡器被設置為使用替代代碼進行數據輸入,而不是簡單的按鍵操作。 我可以使用網上找到的實用程序對它進行重新編程,以模擬普通鍵盤,而不必為每個字符輸入替代代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM