以下代码的字符串方法toCharArray的结果在Android 4.3中是2,其他的返回1,有人知道为什么吗?
byte[] SECRET_BYTES = {(byte) 0xfc, (byte) 0xbc};
Log.i("string", "SECRET_BYTES - " + SECRET_BYTES.length);
String txtPwd = new String(SECRET_BYTES, "UTF-8");
char[] charsPwd = txtPwd.toCharArray();
Log.i("string", "length of charsPwd - " + charsPwd.length);
答案 0 :(得分:0)
字节序列FCBC
不能在UTF-8中形成有效字符:
FC
是一个无效的起始字节,因为它设置了6个最高位,当4是允许的最大值时。BC
是一个意外的延续字节;它前面没有有效的起始字节。我不确定它是否应被视为两个无效字符或仅一个;你可以争辩这两种情况。你可能不应该以任何方式依赖这种行为。