我的数据库是mysql,从网站后台写汉字到数据就是乱码,从数据库读汉字出来就不是乱码。这回事怎么回事?

解决方案 »

  1.   

    数据库是MySQL??
    如果是的话就要改变编码方式
    MySQL默认是ISO-8859-1
      

  2.   


    /**
     * 获得unicode 字符串
     * @param s  从数据中读取出来的字符传播
     * @return   可以在java中正常显示的字符串
     */
    public static String toUTFString(String s)
    {
    try {
    return new String(s.getBytes("ISO-8859-1"));
    } catch (UnsupportedEncodingException e) {
    return null;
    }
    }
    /**
     * 获得ISO-8859-1 字符串
     * @param s  要写到MySQL中去得Java字符串
     * @return   可以写到MySQL中的字符串
     */
    public static String toISOString(String s)
    {
    try {
    return  new String(s.getBytes(),"ISO-8859-1");
    } catch (UnsupportedEncodingException e) {
    return null;
    }
    }
      

  3.   

    是不是说如果数据库存里存的是中文(好的),读出来是中文
    然后,如果是通过前台页面输入中文保存到数据库里就是乱码了。是这个意思吧。
    贴出你的jdbc的连接数据库的url的写法。
      

  4.   

    呵呵,谢谢大家了,我已经解决了。我的web页面字符集是utf-8,我在把连接字符串由jdbc:mysql://127.0.0.1:3306/cooderfun?user=cooder&password=cooder&useUnicode=True改成了jdbc:mysql://127.0.0.1:3306/cooderfun?user=cooder&password=cooder&useUnicode=True&characterEncoding=gbk就可以了。