一个项目是ssh框架写的,但是留言板中提交的时候,提交到数据库中不能显示中文(数据库中也是乱码),英文字母,数字都可以唯独中文不行,估计应该是编码问题,但是怎么修改还不大清楚,请大家帮忙解决下,谢谢。

解决方案 »

  1.   

    先在Action输出一下是否是中文
    如果是中文
    Mysql的配置程序可以数据库字符配置成和项目一样的
      

  2.   

    mysql数据库是最容易出现中文乱码的你查看一下数据库的默认编码吧。改成和你程序一样的编码方式。。或者在创建数据库的时候指定编码方式,或者在连接数据的时候,在url后面跟上编码方式,,也可以进入mysql安装目录下面的初始化文件中的编码配置方式很多种。
      

  3.   

    这个问题是这样的,你进入mysql的command line client 里面输入\s
    会出现四个字符集编码:Server, Db, Client, Conn Characterset,默认编码是latin1,如果要想写中文,就得讲这些字符集改成能编码中文的字符集,UTF8 GBK  GB2312都行
    其中Client和Server可以在Mysql Server安装路径下的my.ini文件中改,改好后记得重启Mysql服务
    DB可以在sql脚本或者GUI建表时指定,Conn是在连接的配置文件中指定,不过一般是默认使用Client的编码,
    一般就改好Client和Server就行了。
    另外,如果SSh框架中,Struts2 中如果要传递中文信息,最后要将Tomcat(或者其他web容器)的字符集也设置成对应的能编码中文的字符集。over
      

  4.   

    我的怎么只可以修改Client, Conn中得啊,Server, Db,我怎么没找在那修改啊。
      

  5.   

    建表用这样的语句:  
    create   table   t3(id   int  auto_increment  primary   key,
      name   char(20)   null)engine=innodb default character set=utf8;注意主要是建表时带上engine=innodb default character set=utf8;就一定没有问题--------------------------------------------------------------------------------------------------
      

  6.   


    my.ini 里面不就有一行是设置Server的么?
    # SERVER SECTION
    # ----------------------------------------------------------------------
    #
    # The following options will be read by the MySQL Server. Make sure that
    # you have installed the server correctly (see above) so it reads this 
    # file.
    #
    [mysqld]# The TCP/IP Port the MySQL Server will listen on
    port=3306
    #Path to installation directory. All paths are usually resolved relative to this.
    basedir="C:/Program Files/MySQL/MySQL Server 5.1/"#Path to the database root
    datadir="C:/ProgramData/MySQL/MySQL Server 5.1/Data/"# The default character set that will be used when a new schema or table is
    # created and no character set is defined
    default-character-set=gbkDB可以通过GUI改,也可以在脚本中改,不过一般Server是GBK的话  DB也会是GBK的 
    GUI中改的话,就是在每张表的Detail Column选项卡中
    脚本中改的话,就是在脚本最开始设置 set character set GBK;
    或者在每张表的声明后面加上DEFAULT CHARSET=GBK
      

  7.   

    web.xml中配置spring的characterEncoding 过滤器
      

  8.   

    mysql创建表时需要utf8格式,或者通过图形化工具修改。CREATE TABLE `emslave` (
      `slaveId` int(11) NOT NULL auto_increment,
      `deviceId` int(11) NOT NULL,
      `macAddress` varchar(45) NOT NULL,
      `serviceContent` varchar(45) default NULL,
      `slaveOnline` int(11) NOT NULL,
      PRIMARY KEY  (`slaveId`),
      KEY `FK_EMSlave_1` (`deviceId`),
      CONSTRAINT `FK_EMSlave_1` FOREIGN KEY (`deviceId`) REFERENCES `device` (`deviceId`) ON DELETE CASCADE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
      

  9.   

    这东西和你的myini也有关系,改下页面的编码和myini文件的编码 都改成GBK或是utf-8
      

  10.   

    Spring 配置文件改一下
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
    destroy-method="close">
    <property name="driverClass" value="com.mysql.jdbc.Driver" />
    <property name="jdbcUrl"
    value="jdbc:mysql://localhost:3306/数据名?useUnicode=true&amp;characterEncoding=utf8&amp;autoReconnect=true" />
    <property name="user" value="root" />
    <property name="password" value="root" />
    这样试试!
      

  11.   

    我做课程设计的时候也遇到这种情况了,但是我在数据库里边输入中文没问题,但是在jsp中输入中文就是乱码了
      

  12.   

    是这样的,好像改2处 改成UTF-8就OK
      

  13.   

    检查下mysql的字符集,改为UTF-8吧