使用MYsql数据库 网上搜了很多办法 比如改什么my.ini 都用了 但是 输入中文后 mysql 中仍然是乱码, 后来把myeclips 编码改成 UTF-8 后 只要输入中文 就出错。

解决方案 »

  1.   


    <!-- 统一编码UTF-8  -->
    <filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>
    org.springframework.web.filter.CharacterEncodingFilter
    </filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
    <param-name>forceEncoding</param-name>
    <param-value>true</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    数据库统一用UTF-8
    页面也用UTF-8
    一般统一一下编码就没问题的!!!
      

  2.   

    上面那段时写在web.xml文件中的
      

  3.   

    上面的过滤器是spring自带的,解决乱码
      

  4.   

    怀疑改的my.ini不对..
    看下服务里面mysql对应的my.ini是哪个
      

  5.   

    在web.xml文件中写入了 这些 而且将mysql文件夹下的 my.ini 文件修改成
    # MySQL Server Instance Configuration File
    [client]
    port=3306
    [mysql]
    default-character-set=utf8
    [mysqld]
    # The TCP/IP Port the MySQL Server will listen on
    port=3306
    default-character-set=utf8
    sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
    max_connections=100
    query_cache_size=0
    table_cache=256
    tmp_table_size=5M
    thread_cache_size=8
    myisam_max_sort_file_size=100G
    myisam_sort_buffer_size=8M
    key_buffer_size=8M
    sort_buffer_size=212K
    innodb_additional_mem_pool_size=2M
    innodb_flush_log_at_trx_commit=1
    innodb_log_buffer_size=1M
    innodb_buffer_pool_size=8M
    innodb_log_file_size=10M
    innodb_thread_concurrency=8
    还是不能够实现中文的输入
      

  6.   

    连接字符串中,有没有加 charsetEncoding=utf8
      

  7.   

    my.ini不用改,myeclips更不用改,直接在连接串最后加上****?charsetEncoding=utf8 就可以了
      

  8.   

    我也这样配置了
    driverClassName=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/new_db1?useUnicode=true&characterEncoding=utf8
    username=root
    password=admin
    initialSize=1
    maxActive=100
    maxIdlle=8
    minIdle=1
      

  9.   

     <filter>
       <filter-name>char</filter-name>
       <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
       <init-param>
       <param-name>encoding</param-name>
       <param-value>UTF-8</param-value>
       </init-param>
      </filter>
      <filter-mapping>
       <filter-name>char</filter-name>
       <url-pattern>/*</url-pattern>
      </filter-mapping>
      

  10.   

    在连接数据库的时候加上参数就可以了 
    jdbc.driverClassName=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost/test?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=utf8
    jdbc.username=root
    jdbc.password=root
      

  11.   

    jdbc:mysql://localhost:3306/new_db1?characterEncoding=utf8 这样吧?
      

  12.   

    web乱码
    http://blog.csdn.net/crazylaa/archive/2009/12/24/5066784.aspx
      

  13.   

    楼主先试试页面传到Struts中的中文是不是乱码,直接打印到控制台上就可以看出来
    如果不是乱码那就说明是数据库的问题,将数据库重装一下就可以了,注意重装的时候将数据库的编码改成GBK如果打印出来的是乱码的话,那就需要自己写一个过滤器来处理一下了Struts2中可以直接配置一下,不需要自己写中文过滤器
    你先按照上面的方法检查下,定位错误的位置才好改
      

  14.   

    直接在mysql操作窗口中输入中文
    看会不会出错
    如果是修改my.ini文件
    则需要重启不是改了就马上有效
      

  15.   

    Enter password: *****
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 3
    Server version: 5.1.42-community MySQL Community Server (GPL)Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> use new_db1
    Database changed
    mysql> select * from producttype
        -> ;
    +--------+-------------+------------+------------------+------------+---------+-
    ---------+
    | typeid | goodsAmount | goodsKinds | goodsname        | goodsprice | visibel |
    parentid |
    +--------+-------------+------------+------------------+------------+---------+-
    ---------+
    |      1 |          28 | 0iiii      | 脰脨脦脛             |        258 | 
      |     NULL |
    |      2 |          28 | 1iiii      | 脰脨脦脛           |        258 |        |
        NULL |
    |      3 |          28 | 2iiii      | 脰脨脦脛           |        258 |        |
        NULL |
    |      4 |          28 | 3iiii      | 脰脨脦脛           |        258 |        |我想应该是 mysql 数据库的问题
      

  16.   

    在将这些内容 设置成utf8 的编码形式后
    mysql> SHOW VARIABLES LIKE 'character_set_%';
    +--------------------------+---------------------------------------------------
    -----+
    | Variable_name            | Value
         |
    +--------------------------+---------------------------------------------------
    -----+
    | character_set_client     | utf8
         |
    | character_set_connection | utf8
         |
    | character_set_database   | utf8
         |
    | character_set_filesystem | binary
         |
    | character_set_results    | utf8
         |
    | character_set_server     | utf8
         |
    | character_set_system     | utf8
         |
    | character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.1\share\char
    ets\ |
    +--------------------------+---------------------------------------------------
    -----+
    8 rows in set (0.00 sec)
    ///////////////////////////
    并且将jdbc.url=jdbc:mysql://localhost/test?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=utf8  加入后再添加数据 仍然乱码 非常不解。 太杯具了,实在想不通!!!!!!
      

  17.   

    这些问题在csdn上提了不下百次了。乱码。
      

  18.   

    url=jdbc:mysql://localhost:3306/new_db1?useUnicode=true&characterEncoding=utf8这句要加,而且你的数据库也必须是UTF-8编码的。
      

  19.   

    jdbc:mysql://localhost:3306/hrm_db?useUnicode=true&amp;characterEncoding=utf-8应该是utf-8,不是utf8还有保证你的数据库编码是utf-8