标签: hibernate.cfg.xml,  编码 格式,  数据库 通过hibernate.cfg.xml映射出数据库的表,但在插入中文数据时出现在了中文乱码
我使用过如下方法,但问题还是没有解决,如请哪们大仙知道后请告诉小弟
方法1:
在 mysql 的安装目录下(D:\Program Files\MySQL\MySQL Server 5.0
)修改 my.ini文件中的 default-character-set=gbk,修改完后,需要重新 启动 mysql 数据库.
方法2:
如果使用 hibernate时,就可以直接在 hibernate.cfg.xml文件中配置相关属性.
<property name="connection.useUnicode">true</property>
<property name="connection.characterEncoding">gbk</property>
错误提示:
ERROR 1406(22001):Data too long for column' name'at row 1; 

解决方案 »

  1.   

    在插入数据库之前先执行stat.execute("set names gb2312");
     
      

  2.   

    Data too long for column' name'at row 
    数据库的字段 name长度设置短了
      

  3.   

    如果你是从网页form得来的数 那要把网页改成gb2312  然后在用hibernate save保存对象时把从网页得来的汉字在转换下 写个转化函数 
    public static String ISOtoGB(String iso){
    String gb;
    try{
    if(iso.equals("") || iso == null){
    return "";
    }
    else{
    iso = iso.trim();
    gb = new String(iso.getBytes("ISO-8859-1"),"GB2312");
    return gb;
    }
    }
    catch(Exception e){
    System.err.print("编码转换错误:"+e.getMessage());
    return "";
    }
    }
    }
      

  4.   


    不知道你把编码改了之后,数据库重新建了吗?如果数据库还是以前编码建的数据库的话,它的编码还是以前的编码,
    你这样,把编码改为UTF-8之后,重启数据库.
    ,再重新建一个数据库,应该就没问题了!!
      

  5.   

    Data too long for column' name'at row 1;
    你的数据长度超过了你定义的name字段的长度和编码没关系,编码问题那也是乱码不会有异常
      

  6.   

    ERROR 1406(22001):Data too long for column' name'at row 1;
    数据库字段长度问题