我使用下面的代码将字符序列转换为字节数组。然后我将字节数组作为 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
是由String
、StringBuilder
、StringBuffer
等实现的接口(interface),因此所有 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
作为默认编码.
关于java - 在 Android 中将字节数组转换为字符序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12052050/