1、更改服务器的编码方式,在终端输入以下命令:
站在用户的角度思考问题,与客户深入沟通,找到田东网站设计与田东网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、网站建设、企业官网、英文网站、手机端网站、网站推广、域名注册、网站空间、企业邮箱。业务覆盖田东地区。
mysqld--character-set-server=gbk--collation-server=gbk_chinese_ci;
2、更改某个数据库的编码方式
mysql-uroot-p
alterdatabasecharactersetgbkcollategbk_chinese_ci;
3、在创建数据库时指定编码:
mysql-uroot-p
createdatabasedb_namecharactersetgbkcollategbk_chinese_ci;
4、更改某个表的编码方式
mysql-uroot-pdb_name
altertabletable_nameconvertto charachtersetgbkcollategbk_chinese_ci;
5、在创建表时指定编码方式
mysql-uroot-pdb_name
createtabletable_name(....)charactersetgbkcollategbk_chinese_ci;
6、更改某行的编码方式
mysql-uroot-pdb_name
altertabletable_namemodifycolumn_namevarchar(20)charactersetgbkcollategbk_chinese_ci;
7、在创建列时指定编码方式:
/preprename="code"class="sql"mysql-uroot-pdb_name
createtabletable_name(...,col1varchar(20)charactersetgbkcollategbk_chinese_ci,...)charactersetutf8collateutf8_general_ci;
step
1.将原来的gbk编码的数据库导出为utf8编码的(采用了gzip压缩)
#
/usr/local/mysql/bin/mysqldump
-uroot
-proot
–compatible=mysql40
–default-character-set=utf8
–extended-insert
–force
–add-locks
–add-drop-table
discuz
|
/usr/bin/gzip
-9
/home/ftp/backup/bak_1227.sql.gz
这里起主要作用的就是红色标出来的这两个选项了。
step
2.将网上的备份数据库文件下载到本地,解压
#
gunzip
bak_1227.sql.gz
导入到本地测试库wwwtest(手动创建的时候选的utf8_general_ci编码)中
#
/usr/local/mysql/bin/mysql
-uroot
-proot
wwwtest
/home/ftp/backup/bak_1227.sql
打开phpmyadmin查看一下数据库显示,数据库和表编码类型都是utf8_general_ci了,OK,大功告成。
————————————————————————————
这里需要注意的问题,导出时的文件编码,由于要导入到utf8编码的数据库中,并且导成utf8编码,所以添加参数–default-character-set=utf8,这样的话导出来的数据库备份文件就是utf8格式的文件了.还有另一个参数–compatible=mysql40,这个参数带上后就不会把原数据库中的编码设置导出来,比如我要导出的数据库是gbk编码的,如果不加–compatible=mysql40这个参数,那导出来的文件中创建表的语句中就会带有DEFAULT
CHARSET=gbk,如果这样的话导入数据时,即使数据库是utf8编码的,导入后表的编码也会变成gbk.所以要加–compatible=mysql40这条参数,这样就不会在数据库备份文件中带有DEFAULT
CHARSET=gbk,这样就可以导入到utf8编码的数据库中,而且导入的表也使用的是当前数据库的编码
每个表把记录导出来,然后用记事本打开,然后另存为时选择保存的字符编码为utf8然后在放到数据库中
1)先导出成sql语句
2)然后修改导出的sql语句,把其中关于gbk的改为utf-8
3)再用新的sql语句生成新数据库及数据