发现mysql-connetct-java包是用的GB2312的编码,这个是不是问题的真正原因呢?CSDN的高手们呢?

解决方案 »

  1.   

    直接存就好了,为什么还要转码这么麻烦,只要你数据库里相应的字段是nvarchar,nchar,ntext就行了
      

  2.   

    另外写个方法啊
    private String formatting(String str){
            try {
                byte[] bytes = str.getBytes("ISO8859_1");
                return new String(bytes);
            } catch (Exception ex) {
                return "";
            }
        }这样应该就可以了,我都是这样用的啊
      

  3.   

    转化成ascii码, 再用也可以解决的.
      

  4.   

    首先解释下那个单引号,是错误的,但csdn的帖子貌似不能修改,所以一直没改,现在关键问题是直接存、或者转码都不成功。我不知道大家平时怎么做的,java我是新手。
      

  5.   

    怀疑:
    “查看sql语句发现变成了UPDATE `search_record` SET `history_data` =`??`  ,也就是中文不能”怎么查看能够看到 set的内容?
    据我所知:update xx set xxx=? 的这中方法,SET之后看不到SET进入的内容的。建议:先抛开数据库读写,先调试看看后台能否降前面输入的参数正确的显示出来。比如System.out看能否将中文显示出来。
      

  6.   

    bigc2001(大C) :
    我就是在
    System.out.println(prepStmt.toString());
    时看到了中文变成了?
    简化一下:
    String sql = "UPDATE `search_record` SET `history_data` ='中国' WHERE  `session_id` =`1234` ";
    上面那句的输出就是:
    com.mysql.jdbc.ServerPreparedStatement[1] - UPDATE `search_record` SET `history_data` ='??' WHERE  `session_id` = `1234`