Преобразование байт-массива в Charsequence в Android

Я использовал приведенный ниже код для преобразования Charsequence в байт-массив. Затем я сохраняю байтовый массив как Blob в моей базе данных Sqlite.

Для этого я использовал приведенный ниже код,

public static byte[] toByteArray(CharSequence charSequence) { if (charSequence == null) { return null; } byte[] barr = new byte[charSequence.length()]; for (int i = 0; i < barr.length; i++) { barr[i] = (byte) charSequence.charAt(i); } return barr; } 

Теперь я хотел бы преобразовать массив байтов, полученный из sqlite в Charsequence. Но я не мог помочь.

Как преобразовать байт-массив в Charsequence?

Буду признателен за любую оказанную помощь.

    Чтобы преобразовать CharSequence в массив байтов

     CharSequence seq; Charset charset; ... byte[] bytes = seq.toString().getBytes(charset); 

    Чтобы вернуться назад

     CharSequence seq2 = new String(bytes, charset); 

    Просто помните, что CharSequence – это интерфейс, который реализуется String , StringBuilder , StringBuffer и т. Д., Поэтому все экземпляры String являются экземплярами CharSequence но не все экземпляры CharSequence являются String но контракт для CharSequence заключается в том, что его метод toString() должен возвращать эквивалентную String

    Внутренне все строки в Java представлены как Unicode, поэтому, если потребитель и производитель являются Java, то наиболее безопасной кодировкой для использования является один из UTF-8 или UTF-16 зависимости от вероятного размера кодировки ваших данных. Там, где преобладают латинские скрипты,

     Charset charset = Charset.forName("UTF-8"); 

    Будет 99,9% времени предоставить наиболее эффективное пространственное кодирование, для не-латинских наборов символов (например, китайский) вы можете использовать UTF-16 больше пространства в зависимости от набора данных, который вы кодируете. Вам нужно будет иметь измерения, показывающие, что это более эффективное пространственное кодирование, и поскольку UTF-8 более широко ожидается, я рекомендую UTF-8 в качестве кодировки по умолчанию в любом случае.

    Похоже, вы используете данные ASCII (если нет, ваш код довольно схож).

    Чтобы получить CharSequence из ASCII-байтов, вы можете сделать

     CharSequence x = new String(theBytes, "US-ASCII"); 

    Для других кодировок просто укажите имя набора символов.

     CharSequence c = new String(byte[]);