数据库连接 使用的是
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/udb_yangdc?useUnicode=true&characterEncoding=UTF-8";
con=DriverManager.getConnection(url,"***","***");
...在java代码中直接执行 String sql = "INSERT INTO  `udb_yangdc`.`AliceChat` ( `ChatId` ,`content` , `name` ,`nameID` ,`time`)VALUES(NULL ,' fghfg到过','Ydc00','null','2012-10-28 4:29:24')";
代码   其中的 中文 到数据库中就乱码了 00..什么问题 呢  服务器: localhost via TCP/IP
用户: root@localhost
MySQL 字符集: UTF-8 Unicode (utf8)
MySQL 连接校对:    
校对 属性 Null 默认 额外 操作
ChatId int(11) 否 auto_increment            
content text utf8_unicode_ci

解决方案 »

  1.   

    我靠,楼猪睡觉好晚啊,话说没用过MySql,所以不知道你的url写的有没有错误,但是你的字符串里怎么还有分号啊?
      

  2.   

    把这个:String url="jdbc:mysql://localhost:3306/udb_yangdc?useUnicode=true&characterEncoding=UTF-8";改为:
    String url="jdbc:mysql://localhost:3306/udb_yangdc?useUnicode=true&characterEncoding=UTF-8";
    你不是在xml中,不需要转义的。
      

  3.   

    你不用JAVA,直接在mysql中执行呢
      

  4.   

    Mysql中的utf-8编码设置不用加“-”,直接写utf8.
    还有,“&”这个符号,如果是在xml文档中,需要写成 & 
    在java中直接写&就可以了
      

  5.   

    mysql客户端用gbk编码方式,
    改my.ini里的
    [mysql]
     
     default-character-set=gb2312
      

  6.   

    你是在cmd命令行下看的吧,因为cmd使用GBK编码的,你要看utf-8的内容,肯定乱码啊,你可以再用程序读出来看了还乱码吗
      

  7.   

      在mysql中可以  就是 java中 不行
      

  8.   

    String url="jdbc:mysql://localhost:3306/udb_yangdc?useUnicode=true&characterEncoding=UTF-8";
    MySQL 字符集: UTF-8 Unicode (utf8)
     那就只java传值部分已经乱码了  ,
    你写一个死的sql增加语句  里面有中文值,测试一下
      

  9.   

    楼主请改String url="jdbc:mysql://localhost:3306/udb_yangdc?useUnicode=true&characterEncoding=UTF-8";为:String url="jdbc:mysql://localhost:3306/udb_yangdc?useUnicode=true&characterEncoding=UTF8"如果解决不了的话,请到你mysql的安装文件中招到my.cnf文件,然后打开,添加default-character-set=utf8
      

  10.   


    <%@page import="Data.DBConn"%>
    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ page import="java.sql.*" %>
    <%  Connection con=null;
    try
    {
    Class.forName("com.mysql.jdbc.Driver");
    }
    catch(ClassNotFoundException e)
    {
    e.printStackTrace();
    }
    try
    {
    String url="jdbc:mysql://localhost:3306/udb_yangdc?useUnicode=true&characterEncoding=utf8";
    con=DriverManager.getConnection(url,"yangdc","02353631247");
    }
    catch(SQLException e1)
    {
    e1.printStackTrace();
    }
      
    PreparedStatement pre = null;
    ResultSet rs = null;
    DBConn conns = new DBConn();
    con = conns.getcon();
    String sql = "INSERT INTO  `udb_yangdc`.`AliceChat` ( `ChatId` ,`content` , `name` ,`nameID` ,`time`)VALUES(NULL ,' fghfg到过','Ydc00','null','2012-10-28 4:29:24')";
    System.out.println(sql);
    try {
    pre = con.prepareStatement(sql);
    pre.executeUpdate();
    } catch (SQLException e) {

    e.printStackTrace();
    }
         
    %>
    <html>
      <head>
        <title>forever</title>
      </head>
      
      <body>
    sd
      </body>
    </html>
      还是不行 以上 的 各种 都试过了  
      

  11.   


    JNDI Name:jdbc/yangdcData Source URL: jdbc:mysql://localhost:3306/udb_yangdc?useUnicode=true&amp;characterEncoding=UTF-8JDBC Driver Class:org.gjt.mm.mysql.DriverUser Name:Password:Max. Active Connections:Max. Idle Connections:Max. Wait for Connection:Validation Query:
      

  12.   

    服务器: localhost via TCP/IP
    服务器版本: 5.0.95-community-nt-log
    协议版本: 10
    用户: yangdc@localhost
    MySQL 字符集: UTF-8 Unicode (utf8)
    网站服务器Apache/2.2.21 (Win32) mod_jk/1.2.25 PHP/5.2.17
    MySQL 客户端版本: 5.0.51a
    PHP 扩展: mysql
      

  13.   

    楼主 关键是  你建表的时候 表的编码方式你设为utf8了吗了吗?
      

  14.   


    首先定位问题:
    1、首先确定你的数据库字符集是否正常,这个在数据库里面添加一条带有汉字数据既可验证出来;
    如果数据库里面显示汉字不正常,一般是这个问题,mysql乱码多数是数据库的问题(如果是这个问题就自己google一下)
    :修改数据库的字符集
        mysql>use mydb
        mysql>alter database mydb character set utf-8;
    创建数据库指定数据库的字符集
        mysql>create database mydb character set utf-8;通过配置文件修改:
    修改/var/lib/mysql/mydb/db.opt
    default-character-set=latin1
    default-collation=latin1_swedish_ci

    default-character-set=utf8
    default-collation=utf8_general_ci
    重起MySQL:
    [root@bogon ~]# /etc/rc.d/init.d/mysql restart通过MySQL命令行修改:
    mysql> set character_set_client=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_connection=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_database=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_results=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_server=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_system=utf8;
    Query OK, 0 rows affected (0.01 sec)
    mysql> set collation_connection=utf8;
    Query OK, 0 rows affected (0.01 sec)
    mysql> set collation_database=utf8;
    Query OK, 0 rows affected (0.01 sec)
    mysql> set collation_server=utf8;
    Query OK, 0 rows affected (0.01 sec)
    查看:
    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        | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    8 rows in set (0.03 sec)
    mysql> show variables like 'collation_%';
    +----------------------+-----------------+
    | Variable_name         | Value            |
    +----------------------+-----------------+
    | collation_connection | utf8_general_ci |
    | collation_database    | utf8_general_ci |
    | collation_server      | utf8_general_ci |
    +----------------------+-----------------+
    3 rows in set (0.04 sec)
    2、存入数据库的过程中产生乱码,这个主要是编码格式不一致导致的,需要进行转码。
      

  15.   

    为什么不把 sql 写成带问号的形式?
      

  16.   

    楼主你这样测试一下,你先不用程序执行sql插入数据,而是用命令行里执行insert语句,如果插入的数据正常,则是程序里面的编码和数据的编码不一致,如果不正常,则是数据库表的编码不正确,试试吧