java入数据库Mysql乱码问题:

来源:百度知道 编辑:UC知道 时间:2024/07/03 04:19:44
Mysql 乱码问题:

Mysql配置文件如下(my.ini,安装的时候server的charset选择的是utf8):
[client]
port=3306
[mysql]
default-character-set=gbk
[mysqld]
default-character-set=utf8

java代码如下(jar包已添加):
public class DatabaseTest {

public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/bbs","root" , "mysql");
conn.createStatement().execute(
"insert into user values('用户名','密码')");
} catch (Exception e) {
e.printStackTrace();
}
}
}
在Mysql的bbs下建表
create table user(
username varchar(20),
password varchar(20)
);

可在后台查询,插入的是乱码。

将配置文件中[mysql] default-character-set=改为UTF8任然存在乱码
请高手赐教!
一开始就是GBK出错了才改的

不是web应用,就上面一段小程序啦

default-character-set=改为GBK呢
url后面直接追加:useUnicode=true&characterEncoding=gbk呢

在mysql命令行中运行以下代码:
SET character_set_client = gbk;
SET character_set_connection = gbk;
SET character_set_database = gbk;
SET character_set_results = gbk;
SET character_set_server = gbk;

SET collation_connection = gbk_bin;
SET collation_database = gbk_bin;
SET collation_server = gbk_bin;

有一点要特别注意!

像GBK,UTF-8这样的名字,在mysql与JAVA中有不同的规定,写的时候要格外注意,否则会出错。

比如GBK,在JAVA中要写成GBK,但在mysql中要写成gbk(连接数据库的URL)

比如UTF-8,在JAVA中要写成UTF-8,但在Mysql中要写成utf8

其它的字集符也有类似的区别

URL 改成
"jdbc:mysql://localhost:3306/bbs;charset=gb2312"

当然UTF8也行。。

是WEB应用么
你使用的是JSP 还是servlet 或者用struts。
在这些文件中转换一下UTF-8。
request.setCharacter("UTF-8")
response.setCharacter("utf-8");

可能是你MYSQL安装的时候没有选择字符集 你可以去设置下数据库的字符集看看 是否用的是UTF-8 或者 GB2312

你的JAVA文件是什么编码格式的