gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:48:42 25 4
gpt4 key购买 nike

我使用下面的代码将字符序列转换为字节数组。然后我将字节数组作为 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com