2017-10-19 34 views
3

我在Android中遇到了UTF-8的問題。我需要以UTF-8格式將字符串存儲到字節[]中。Android中的UTF-8與UTF-8的定義相比

到目前爲止這麼好。這是我的代碼,其中用戶類型爲EDITTEXT,這應該被存儲到UTF-8格式的字節[]:如果I型例如數

idString = editId.getText().toString(); 
byte[] valueId = idString.getBytes(Charset.forName("UTF-8")); 

現在:1

它應該存儲爲UTF-8單元:31

,但它被存儲爲十進制值:49

我不明白膠水我的失敗是什麼,所以任何人可以幫助我嗎?

謝謝

回答

2

問題是十六進制和十進制值。它以一種稱爲ASCII表格的格式存儲。數字1被存儲爲十進制49或十六進制31

這可以幫助你http://www.asciitable.com/

+0

呀謝謝你,幫助了一下。所以它是正確的,如果調試顯示我49它存儲爲我的數組中的0x31?在位0011 0001? – Fab

+1

是的,0x符號顯示它是一個十六進制值,而不是一個整數。您可以使用在線十六進制到整數轉換工具,或者您可以直接在調試模式下查看值,發佈在這裏https://stackoverflow.com/questions/17447013/android-studio-debugging-display-variables-as-hexadecimal –

+0

謝謝你,所有工作我只是因爲調試窗口而感到困惑。 – Fab