1、

set names 'utf-8'

inser into 
2、
没遇到过,你可以试一下用第一个问题的方法。

解决方案 »

  1.   

    我用的数据库编码和写JSP页面都是用UTF-8!你用如下命令检查一下:
    mysql> show variables like "%char%";
    +--------------------------+--------------------------------------------------
    -----+
    | Variable_name            | Value
         |
    +--------------------------+--------------------------------------------------
    -----+
    | character_set_client     | utf8
         |
    | character_set_connection | utf8
         |
    | character_set_database   | utf8
         |
    | character_set_results    | utf8
         |
    | character_set_server     | utf8
         |
    | character_set_system     | utf8
         |
    | character_sets_dir       | C:\Program Files\MySQL\MySQL Server 4.1\share\cha
    ets/ |
    +--------------------------+--------------------------------------------------
    -----+
    7 rows in set (0.00 sec)mysql> show variables like "%colla%";
    +----------------------+-----------------+
    | Variable_name        | Value           |
    +----------------------+-----------------+
    | collation_connection | utf8_general_ci |
    | collation_database   | utf8_general_ci |
    | collation_server     | utf8_general_ci |
    +----------------------+-----------------+
    3 rows in set (0.00 sec)我的设置就如上面所示,我在mysql query browser下,一切正常.
    如果你的不是,修改一下的my.ini文件的default charset
    我从页面取下数据,一般经过如下操作,写入数据库就不会出现乱码.String CityName=new String(request.getParameter("CityName").getBytes("ISO-8859-1"),"utf8");
    ..........................
    String str="Insert into Cities(CityName) values(?)";
    PreparedStatement stmt = con.prepareStatement(str);
    stmt.setBytes(1,CityName.getBytes("utf8"));
    ........................
      

  2.   

    hy2003fly(),谢谢,我的设置和你的一模一样,但我对数据库的操作都是用的别人已经写好了的bean ,我没有源文件,所以这种办法对我来说不可行啊。有没有别的办法啊?谢谢!
      

  3.   

    你有没有bean的源文件?有的话,先备份一份,然后按照我所说的去修改一下,看看行不行?
      

  4.   

    不好意思,刚才没有看清楚!你没有源文件的话,就自己写一个转换的类吧.到web->jsp那里找一下(就是"数据库开发"下的),我看过有高手在那里贴过类似的代码.
      

  5.   

    to hy2003fly():目前我的程序量太大了,我想通过不修改程序的办法来解决,否则要改的地方太多了。谢谢!
    今天试了一下过滤器,用了过滤器后,向数据库中插入“我们”,在数据库中显示“鎴戜滑”,而从页面读出来是两个问号,即“??”,没有加过滤器之前,数据库中“我们”是这样一串“忙聢聭盲禄卢”,但页面上显示是正常的。请教各位在用过滤器时有没有出现这种情况?怎么解决?谢谢!
      

  6.   

    1、数据库中只要是中文的,就全部都是乱码,但从页面读出来是正常的;从页面中写中文,数据库中是乱码,但从页面读出来是正常的;
       utf8编码一个字符3-4个字节(mysql中现在3个),你的客户端不支持utf8,所以看起来是乱码2、直接在MYSQL Command Client中写insert语句,插入的中文显示正常,但读到页面是乱码。   如果你的操作系统是中文版的windows,进入mysql后首先执行命令:set names gbk;
       然后插入中文,应该就可以在页面是正常的了
      

  7.   

    我也遇到了同样的问题。初步怀疑是jdbc这一层帮我转码了强烈关注!
      

  8.   

    怪了,我写到数据库的的中文数据全是UNICODE的编码。页面上设置的CHARSET是utf-8,MYSQL设置的字符集也是utf-8.
    怎么来正常显示中文呢?
      

  9.   

    我的解决了。
    其实也不算是解决。只是换了一个mysql的客户端工具--phpMyAdmin从原来的2.4升级到2.6。
    它多了“connection collation”这样一个选项楼主可以试试
      

  10.   

    我的刚好有LZ相反,数据库中为中文的JSP显示正确(用mysql工具直接写入),通过网页传入数据库的数据为乱码,也显示为乱码。
    我的JSP服务器为LINUX,感觉可能和你的JSP服务器操作系统有关,建议换个试试!