各位好问题是这样的,我有一个需要被保存的byte[],我将它形成String之后保存入sqlite3,之后再进入读取,但读出的byte[]和之前的不一样了。存:
byte[] b1 = {...};
String str = new String(b, "UTF-8");
// 将str存入sqlite3了读:
String str = 从db中读到str
byte[] b2 = str.getBytes("UTF-8");b1和b2的内容不一样了,怎么解决呢?
byte[] b1 = {...};
String str = new String(b, "UTF-8");
// 将str存入sqlite3了读:
String str = 从db中读到str
byte[] b2 = str.getBytes("UTF-8");b1和b2的内容不一样了,怎么解决呢?
网上查了下,sqlite3的确是用的UTF-8。
在用 String(b, "UTF-8");组成字符串的时候,对于不认识的字节都转换成了"-17,-65,-67"了.(ef,bf,bd).
但对于有意义的字节吗,没问题。比如“中”字的utf-8码是:"-28,-72,-83",把这样的字节放入数组,就不会有问题。
或者你应该做成序列化
也就是[0x01,0xf2,0xa3]类似这样的字节数组
转换为->String[01f2a3]这样格式,然后往数据库存AND:sqlite可以直接字节数组的保存啊...直接用Blob类型不就行了吗
setBytes(int parameterIndex, byte[] x)
setBytes(int parameterIndex, byte[] x)