随笔 - 298  文章 - 377  trackbacks - 0
<2007年8月>
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿(34)

随笔分类

随笔档案

文章档案

相册

收藏夹

搜索

  •  

最新评论

阅读排行榜

评论排行榜

1 在my.cf文件的[mysqld]段设置:
default-character-set=utf8

2 单独设置某个数据库:
alter database testdb character set utf8;

查看mysql支持的编码:
show character set;
posted on 2007-08-23 22:15 聂文龙 阅读(1136) 评论(2)  编辑 收藏 引用 所属分类: Database

FeedBack:
# re: mysql 编码 2007-08-23 22:35 聂文龙
使用utf-8编码的好处:
1,国际化,能包容其他编码
2,在用java开发的时候,省去了烦人的汉字编码问题

把mysql从gb2312转到utf-8的方法:
环境:win2000 server,mysql 4.1.11-nt
1,导出原来的数据
>mysqldump --opt --default-character-set=latin1 --user=root --password company>company.sql
或>mysqldump --opt --default-character-set=gb2312 --user=root --password company>company.sql
导出后查看是否正确,汉字显示正常即可
2,重装mysql server,把缺省编码设置为utf-8
不重新安装server也可以,只要把数据库,数据表编码转成utf-8就可以了。
 我重装以后,用show variables显示为:
mysql> show variables;
+---------------------------------+--------------------------+
| Variable_name | Value |
+---------------------------------+--------------------------+
| back_log | 50 |
| basedir | C:\mysql\ |
| binlog_cache_size | 32768 |
| bulk_insert_buffer_size | 8388608 |
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\mysql\share\charsets/ |
| collation_connection | latin1_swedish_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |

3,用editplus v2.12打开导出的脚本文件,在前面加上:
SET NAMES utf8;
SET CHARACTER_SET_CLIENT=utf8;
然后把文件另存为utf-8编码的格式
如果脚本文件中有指定数据表编码的语句,如"DEFAULT CHARSET=latin1",需要全部删掉
4,导入数据
>mysql -uroot -p company<company.sql
5,检查是否正确  回复  更多评论
  
# re: mysql 编码 2007-08-23 22:53 聂文龙
1.如果安装mysql的编码已不能更改,很多朋友是购买虚拟主机建立网站,无权更改MYSQL的安装编码,这一关我们可以跳过,因为只要后面的步聚正确,一样能解决乱码问题
2.修改数据库编码,如果是数据库编码不正确: 可以在phpmyadmin 执行如下命令: ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
以上命令就是将test数据库的编码设为utf8
3.修改表的编码:ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
以上命令就是将一个表category的编码改为utf8
4.修改字段的编码:
ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
以上命令就是将test表中 dd的字段编码改为utf8
5.如果是这种情况容易解决,只需检查下页面,修改源文件的charset即可
, //这个正确就无问题了
6.这种情况也是修改页面charset即可,
7.在JSP连接数据库的语句中,
private String url="jdbc:mysql://localhost/"+DB_NAME+" user="+LOGIN_NAME+"&passWord="+LOGIN_PASSWORD+"&characterEncoding=GBK"; //相键要看characterEncoding
8.这种乱码的情况,只需在页面开头加上request.setCharacterEncoding("GBK"); 指定提交的即可

注意:按照以上方法修改以后只能保证你新插入的数据不会乱码,举个例:如果你用户已提交的数据是BIG5,你却想通过以上方法改为可以在GB2312的网页正确显示是不可能的, 这种文字内码的变换只能通过另写程序来解决
  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理