2014-03-13 25 views
0

我希望有人能幫助我,這是的情況:來自NFC芯片的數據包含奇怪的符號? Android/Java

我有一個NFC芯片(Mifare Classic 4k),我讀了一些信息(這是一張學校卡,所以我讀了學生數例)

當我讀出來,並把它放在我的TextView這樣的:

mTextView.setText(cardData);

我得到這個: 「1330955」

當我寫出來的的System.out.println()這樣的:

的System.out.println(cardData);

我得到這個: 「1330955 ????????????????」

當我試圖把它放在一個數據庫中,通過JDBC和PreparedStatement這樣的:

  try { 
       String sql = "insert into studentCards (studentNumber, title, firstName, lastName, dateOfBirth, gender)" + " VALUES(?,?,?,?,?,?)"; 
       DriverManager.setLoginTimeout(5); 
       conn = DriverManager.getConnection(url); 

       PreparedStatement pStatement = conn.prepareStatement(sql); 
       pStatement.setInt(1, cardData); 
       pStatement.setString(2, title); 
       pStatement.setString(3, firstName); 
       pStatement.setString(4, lastName); 
       pStatement.setString(5, dateOfBirth); 
       pStatement.setString(6, gender); 

       int rs = pStatement.executeUpdate(); 
       return retval = Integer.toString(rs); 


      } catch (SQLException e) { 
       e.printStackTrace(); 
       return retval = e.toString(); 
      } finally { 
       System.out.println("Closing the connection."); 
       if (conn != null) try { conn.close(); } catch (SQLException ignore) {} 
      } 

我得到這個:

「1330955 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0" 學號...

我什麼都試過了......我如何才能在數據庫中保存數(1330955)? 我甚至試圖使用split()函數,但是這不起作用。

您可以幫我嗎?如果您需要更多信息,請告訴我!

解決了!

我不得不使用.trim()上cardData。

+0

你試過cardData.trim()嗎? – cesztoszule

+0

謝謝你的工作!我不知道該如何謝謝你!我一直在努力爲這樣的4或5小時... – Summergirl012

+0

沒問題,只是標記爲正確的答案。 – cesztoszule

回答

0

從java本地類使用trim()方法字符串