java - 在 Android 中将字节数组转换为字符序列

标签 java android type-conversion 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 seq;
Charset charset;
...
byte[] bytes = seq.toString().getBytes(charset);

再次转换回来

CharSequence seq2 = new String(bytes, charset);

请记住,CharSequence 是由StringStringBuilderStringBuffer 等实现的接口(interface),因此所有 String 实例都是 CharSequence 实例,但并非所有 CharSequence 实例都是 StringCharSequence< 的契约 是它的 toString() 方法应该返回等效的 String

在 Java 内部,所有字符串都表示为 Unicode,因此只要消费者和生产者都是 Java,最安全的字符集就是 UTF-8UTF-16 取决于数据的可能编码大小。在拉丁文字占主导地位的地方,

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

将在 99.9% 的时间给出最节省空间的编码,对于非拉丁字符集(例如中文),您可能会发现 UTF-16 的空间效率更高,具体取决于您正在编码的数据集.您需要进行测量以表明它是一种更节省空间的编码,并且由于更广泛地期望 UTF-8 我建议在任何情况下将 UTF-8 作为默认编码.

关于java - 在 Android 中将字节数组转换为字符序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12052050/

相关文章:

java - 如何使用 Apache POI 操作评论内容

java - react excel 文件下载损坏

c# - TypeConverter.IsValid() 使用当前线程区域性但 TypeConverter.ConvertFrom() 不使用?

java - 异常处理和字符串转换器

java - 如何在 Firebase 中添加图像列表?

java - 在 JAR 中导出时,Weka 和 Snowball 不起作用

android - 如何找到特定路线上两点之间的距离?

android - 相册和保管箱应用程序

android - HTML 按钮适用于 Windows 浏览器,但不适用于 Android

c# - "x as X != null"和 "x is X"总是返回相同的结果吗?