Sqlite 中文乱码 本帖最后由 zhxhdean 于 2011-03-18 13:21:18 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你取出来应该不会乱码吧。你是在Log里面输出的时候有乱码而已吧~ 没说明白,不管是什么编码,显示的时候要用ucs2就是两个字节的unicode编码。 在 sqlite 中 select 出来的中文是乱码 在android模拟器查询出来的数据也是乱码的。 这个问题 我也遇到过啊 你在存入数据库到时候转成unicode,取出后再转过来 就OK 了 借楼主宝地问一下哈。如何转啊?我这样做有何不妥啊?读出来是乱码。//更新数据库String name = editNewRoomName.getText().toString() ;try { byte[] val = new byte[name.length()]; val = name.getBytes("GBK"); name=new String(val,"UTF-8");} catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block //e.printStackTrace();}String valueStr = “room_name='"+name+ "';";sql = "update " + tableName + " set " + valueStr + " where room_id = "+ actM.getRoomID()+";";…………myDataBase.execSQL(sql);………………//读取数据库room.setRoom_name(new String(cur.getBlob(2),"GBK").trim());sqlite是UTF-8编码,android是GBK编码,所以正常读取的时候,将读取的数据通过GBK转码过来,在android中使用都是正常的,但是更新数据库时,将GBK再转码成UTF-8再写入,再按前面的方式读出来就不正常了,出现了乱码;如果直接用GBK编码写入,再用GBK编码读出,虽然存储是UTF-8编码,也应该是正常的,但是由于数据库不止我一个平台操作,而其他平台均为UTF-8编码格式操作,因此,必须要转码写入,可是为什么转码存储不成功呢? 有dw开发android的吗?用phonegap的,问问题 一个常见的布局 如何实现 小弟,想要用GPS然后在一个图片上打点记录运行的轨迹 Android项目建立时选定了平台,之后还能修改吗? 关于Android开发 eclipse导出.apk的密钥文件的几个疑问 AndroidManifest文件中的path-permission意思是什么? 问两个正则表达式问题 android向web提交数据,中文乱码 Android 格式化外置SD卡,出现权限问题 后端用什么语言好? 闹钟标签重新设置后,闹铃时确没有更新,请高手帮忙。 android客户端与pc服务端通信?
我这样做有何不妥啊?读出来是乱码。
//更新数据库
String name = editNewRoomName.getText().toString() ;
try {
byte[] val = new byte[name.length()];
val = name.getBytes("GBK");
name=new String(val,"UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
}
String valueStr = “room_name='"+name+ "';";
sql = "update " + tableName + " set " + valueStr + " where room_id = "+ actM.getRoomID()+";";
……
……
myDataBase.execSQL(sql);
……
……
……
//读取数据库
room.setRoom_name(new String(cur.getBlob(2),"GBK").trim());sqlite是UTF-8编码,android是GBK编码,所以正常读取的时候,将读取的数据通过GBK转码过来,在android中使用都是正常的,但是更新数据库时,将GBK再转码成UTF-8再写入,再按前面的方式读出来就不正常了,出现了乱码;如果直接用GBK编码写入,再用GBK编码读出,虽然存储是UTF-8编码,也应该是正常的,但是由于数据库不止我一个平台操作,而其他平台均为UTF-8编码格式操作,因此,必须要转码写入,可是为什么转码存储不成功呢?