本帖最后由 zhxhdean 于 2011-03-18 13:21:18 编辑

解决方案 »

  1.   

    你取出来应该不会乱码吧。你是在Log里面输出的时候有乱码而已吧~
      

  2.   

    没说明白,不管是什么编码,显示的时候要用ucs2就是两个字节的unicode编码。
      

  3.   

    在 sqlite 中 select 出来的中文是乱码
      

  4.   

    在android模拟器查询出来的数据也是乱码的。
      

  5.   

    这个问题 我也遇到过啊  你在存入数据库到时候转成unicode,取出后再转过来 就OK 了
      

  6.   

    借楼主宝地问一下哈。如何转啊?
    我这样做有何不妥啊?读出来是乱码。
    //更新数据库
    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编码格式操作,因此,必须要转码写入,可是为什么转码存储不成功呢?