数据库连接 使用的是
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
解决方案 »
- 谁来帮我看看这个错误的原因?
- XFireRuntimeException关于导出WSDL时的错误,在线求问
- 第一次做struts+hibernate+spring遇到这个问题Servlet action is not available
- java如何通过socket TCP/IP 的方式广域网广播
- 关于hibernate中左关联的问题?
- 请问有谁知道如何用RMI传输文件--方案要实用
- ~~~~~怎样判断一个web页面中的按纽或链接是否被点击,请给出代码!谢了~~~~~~~~~
- struts部署简单问题
- 请详细说明JAVA主要是来写什么软件的?
- HibernateTemplate用xml方式注入报空指针错误
- 求助个问题啊,关于事务的
- 使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10
String url="jdbc:mysql://localhost:3306/udb_yangdc?useUnicode=true&characterEncoding=UTF-8";
你不是在xml中,不需要转义的。
还有,“&”这个符号,如果是在xml文档中,需要写成 &
在java中直接写&就可以了
改my.ini里的
[mysql]
default-character-set=gb2312
MySQL 字符集: UTF-8 Unicode (utf8)
那就只java传值部分已经乱码了 ,
你写一个死的sql增加语句 里面有中文值,测试一下
<%@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>
还是不行 以上 的 各种 都试过了
JNDI Name:jdbc/yangdcData Source URL: jdbc:mysql://localhost:3306/udb_yangdc?useUnicode=true&characterEncoding=UTF-8JDBC Driver Class:org.gjt.mm.mysql.DriverUser Name:Password:Max. Active Connections:Max. Idle Connections:Max. Wait for Connection:Validation Query:
服务器版本: 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
首先定位问题:
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、存入数据库的过程中产生乱码,这个主要是编码格式不一致导致的,需要进行转码。