本人现在正在做一个SSH(struts+spring+Hibernate)项目,数据库使用mysql。
mysql中的字符集用latin1,即iso-8859-1,因为数据库是网上服务器的,不能改变其编码。
在Eclipse中使用的是utf8的编码。
现在网页向数据库插入中文信息时,数据库保存的都是问号(?)。
请问各位大侠们,怎么向数据库插入中文?即怎么使得插入的中文是iso-8859-1编码的。

解决方案 »

  1.   

    当然是转码了,自己写一个转码的专属累,没吃插入数据库都用,该类的这个方法,不过你从数据库中取出来的时候,还是要转回原来的编码,urf-8的
      

  2.   


    最好统一编码UTF-8,如果不想就要转码,在插入数据库的时候就进行转码
    new String(str.getBytes("ISO-8859-1"), "UTF-8");
    在页面显示的时候也要转码。
    new String(str.getBytes("UTF-8"), "ISO-8859-1");
      

  3.   

    在spring里配个过滤器试试
      

  4.   

    你的数据库怎么在服务器上呢,奇怪了。你可以试试这样:在spring里配置下。
      

  5.   

    Hibernate.hbm.xml里面连接数据库加上jdbc:mysql://192.168.0.1:3306/test?useUnicode=true&characterEncoding=gbk把GBK改成和你数据库对应的编码,不过iso-8859-1编码插入中文还是乱码的!只能改为支持中文的编码才有效!~LZ在建表的时候在后面加上create table produce(
    id int auto_increment,
    test varchar(255)
    )ENGINE=InnoDB DEFAULT CHARSET=gbk;这样你的表就是GBK的编码了,你可以在上面连接数据库的时候设置GBK即可
      

  6.   

    这个问题很容易解决,所有的地方,只要可以设置编码的地方就用utf-8,用别的话很容易产生乱码~~转来转去的,那是瞎折腾~~所以全部采用utf-8·~在web。xml里面也强制转为utf-8~~这样一次设置全部搞定~~
      

  7.   

    最彻底的办法就是在web.xml里加一个过滤器filter(spring包了自带了),web.xml加入代码如下:
    <filter>
      <filter-name>SetCharacterEncoding</filter-name>
      <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
      <init-param>
      <param-name>encoding</param-name>
      <param-value>GBK</param-value>
      </init-param>
     </filter>
     <filter-mapping>
        <filter-name>SetCharacterEncoding</filter-name>
        <url-pattern>*.jsp</url-pattern>
        </filter-mapping>
        
        <filter-mapping>
        <filter-name>SetCharacterEncoding</filter-name>
        <url-pattern>*.do</url-pattern>
        </filter-mapping>