Android中的UTF-8与UTF-8定义的比较

Android中的UTF-8与UTF-8定义的比较,android,encoding,utf-8,Android,Encoding,Utf 8,我有一个关于Android的UTF-8的问题。我需要以UTF-8格式将字符串存储到字节[]中 到目前为止还不错。以下是我的代码,用户在其中键入editText,并将其存储为UTF-8格式的字节[]: idString = editId.getText().toString(); byte[] valueId = idString.getBytes(Charset.forName("UTF-8")); 现在,如果我键入例如数字:1 应将其存储为UTF-8单位:31 但它存储为十进制值:49 我不

我有一个关于Android的UTF-8的问题。我需要以UTF-8格式将字符串存储到字节[]中

到目前为止还不错。以下是我的代码,用户在其中键入editText,并将其存储为UTF-8格式的字节[]:

idString = editId.getText().toString();
byte[] valueId = idString.getBytes(Charset.forName("UTF-8"));
现在,如果我键入例如数字:1

应将其存储为UTF-8单位:31

但它存储为十进制值:49

我不知道我的失败是什么,有人能帮我吗


谢谢

问题在于十六进制和十进制值。它以称为ASCII表的格式存储。数字1存储为十进制49或十六进制31


这可能会对你有所帮助

是的,谢谢你帮了点忙。所以,如果调试显示它在数组中存储为0x31,这是正确的吗?在位0011 0001?是的,0x表示法显示它是十六进制值,而不是整数。您可以使用在线十六进制到整数转换工具,或者您可以直接在调试模式下查看值,发布在这里谢谢您,所以所有工作都很好,我只是因为调试窗口而感到困惑。我认为integer.toHexString就是您要找的,您可能需要将0x添加为字符串。您已经确定了问题所在,但这与ASCII无关。看见