mysql 的字符编码
=== 稍后再整理
mysql
4.0到mysql
5.0的数据导入出现乱码的解决方案
字体大小:大
| 中
| 小
2007-02-08 17:09 -
阅读:485 - 评论
:0
最近做mysql
4.0到mysql
5.0的数据转化工作,发现乱码
无数,观博客无数心得如下:
*mysql
中文亂碼的原因
mysql
會出現中文亂碼的原因不外乎下列幾點:
-mysql
server本身設定問題,例如還停留在 latin1
-mysql
table 的語系設定問題(包含 character 與 collation)
-客戶端程式(例如 php) 的連線語系設定問題
这是由于 mysql
5.0默认是lantin瑞典语系,因此在mysql
4.0导出的sql文件里面需要加入DEFAULT CHARSET
=utf8 collate
utf8_unicode_ci
例如:
CREATE TABLE IF NOT EXISTS `user_right` (
`user_right_id` int(11) NOT NULL auto_increment,
`user_id` varchar(11) default NULL,
`right_id` varchar(11) default NULL,
PRIMARY KEY (`user_right_id`)
) TYPE=MyISAM DEFAULT CHARSET
=utf8 collate
utf8_unicode_ci
AUTO_INCREMENT=11 ;
然后在php连接数据库最初执行"SET NAMES 'utf8'";
问题解决!以上针对utf8编码的数据库,毕竟是趋势嘛,其它编码有待稍空的时候研究
相关文档:
mysql教程:高手是怎样炼成的:精妙SQL语句介绍
[日期:2009-06-02] 来源: 作者:
如何从一位菜鸟蜕变成为高手,灵活使用的SQL语句是必不可少的。本文收集了部分比较经典,常用的SQL语句供大家参考,希望对大家有所帮助。
说明:复制表(只复制结构,源表名:a 新表名:b)
SQL: select * into ......
首先停止MySQL服务:sudo /etc/init.d/mysql stop
然后编辑MySQL配置文件:sudo gedit /etc/mysql/my.cnf
在my.cnf文件中的[client]段下面加入
default-character-set=utf8
[mysqld_safe]
default-character-set=utf8
[mysqld]
default-character-set=utf8
[mysql]
default-character-set=utf8
重新启动MySQL服务 ......
6
、修改数据库的字符集
mysql>use mydb
mysql>alter database mydb character set utf-8;
6
、创建数据库指定数据库的字符集
mysql>create database mydb character set utf-8;
通过配置文件设置创建数据库时字符集:
#vi /var/lib/mysql/mydb/db.opt
default-character-set=latin1
default-col ......
Java 读取 MySQL 中文 乱码
场景:Java,eclipse,读取MySQL数据库,MySQL编码为utf-8
问题:读出来的中文在eclipse的输出窗口中显示为乱码
错误的写法
1
System.out.print(new String( rs.getString("bib_author").getBytes("utf-8"),"GBK" ));
2
System.out.print( ......