mysql 用户变量 乱码_MySQL的字符集以及中文乱码问题

创建数据库:CREATE DATABASE IF NOT EXISTS liu_yan_ban2 default charset utf8 COLLATE utf8_general_ci;

CREATETABLEliuyan_temp(

id int(6)NOTNULLauto_increment,

url varchar(100)default'#',

ip varchar(20)defaultNULL,

email varchar(50)default'#',

qq varchar(20)defaultNULL,

sj varchar(30)defaultNULL,

content text,

xm varchar(20)default'没有姓名',

KEYid (id)

) defaultcharset=utf8;

然后通过后面的set命令把所有character_set之类的变量全部设置成utf8

变量character_set_client还不能设置成utf8,否则,在mysql>提示符下都插入不了中文字段,都无法运行上面的sql,而必须把第9行改成字母。所以,要设成gb2312

必须把character_set_results设置成gb2312,如果设置成utf8,则显示的还是乱码:

1aaa169762b256a4ac37e2fe8bdb7147.png

查看字符集设置

mysql>show variables like 'collation_%';mysql>show variables like 'character_set_%';通过MySQL命令行修改:mysql> set character_set_client=utf8;mysql> set character_set_connection=utf8;mysql> set character_set_database=utf8;mysql> set character_set_results=utf8;mysql> set character_set_server=utf8;mysql> set character_set_system=utf8;mysql> set collation_connection=utf8;

mysql> set collation_database=utf8;

mysql> set collation_server=utf8;

连接数据库字符串的写法

String dbUrl = "jdbc:mysql://localhost:3306/db_CityInfo?useUnicode=true&characterEncoding=utf-8"

Class.forName("com.mysql.jdbc.Driver").newInstance();

String url ="jdbc:mysql://"+dbip+":3306/liu_yan_ban2?user="+use+"&password="+pass+"&useUnicode=true&characterEncoding=gb2312";

conn= DriverManager.getConnection(url);

//infoSingle.setInfoTitle(rs.getString("info_title"));

String temp=rs.getString("info_title");

temp=new String(temp.getBytes("iso-8859-1"),"gb2312");

System.out.println("刘利新");

System.out.println(temp);

infoSingle.setInfoTitle(temp);

折腾了一晚上,这才见到点中文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值