Я пытаюсь получить значения Unicode строки в массив байтов.преобразовать String в массив Unicode Byte
Я начал использовать следующий код, указывающий Ascii. Это дало список чисел, как и следовало ожидать.
byte[] bytes = null;
try {
bytes = listOfApps.getBytes("US-ASCII");
}catch(Exception e){}
Log.e(TAG, "bytes = " + Arrays.toString(bytes));
listOfAllApps = Gallery|Camera|Contacts|Phone|Email|Messages|Settings......
bytes = [71, 97, 108, 108, 101, 114, 121, 124, 67, 97, 109, 101, 114, 97......
. Итак, я изменил свой код на следующий, чтобы указать unicode.
byte[] bytes = null;
try {
bytes = listOfApps.getBytes(Charset.forName("UTF-8"));
}catch(Exception e){}
Log.e(TAG, "bytes = " + Arrays.toString(bytes));
Я все еще получаю такой же выход. Я думал, что получаю массив значений, начинающийся с \ u. Кто-нибудь знает, что я делаю неправильно?
Вы всегда будете получать 'byte' из' byte [] '. –
«Галерея | Камера | Контакты | Телефон | Email | Сообщения | Настройки» - все представляются с кодовыми точками <128. Что вы ожидаете от US-ASCII и UTF-8? –
"преобразовать String в массив Unicode Char" Существует различие между 'char' и' byte' - пожалуйста, обновите свой заголовок, если вы действительно имеете в виду «массив байтов». –