WEB开发网
开发学院数据库MySQL Mysql 数据库字符集转换及版本升/降级教程 阅读

Mysql 数据库字符集转换及版本升/降级教程

 2007-05-29 10:58:43 来源:WEB开发网   
核心提示: 编译 MySQL 时,指定了一个默认的字符集,Mysql 数据库字符集转换及版本升/降级教程(2),这个字符集是 latin1;安装 MySQL 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,问题就出在这个connection连接层上,想要进行“正确&rdqu

编译 MySQL 时,指定了一个默认的字符集,这个字符集是 latin1;

安装 MySQL 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;

启动 mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的;

此时 character_set_server 被设定为这个默认的字符集;

当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为 character_set_server;

当选定了一个数据库时,character_set_database 被设定为这个数据库默认的字符集;

在这个数据库里创建一张表时,表默认的字符集被设定为 character_set_database,也就是这个数据库默认的字符集;

当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集;

这个字符集就是数据库中实际存储数据采用的字符集,mysqldump 出来的内容就是这个字符集下的;

当我们按照原来的方式通过PHP存取MySQL数据库时,就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。

想要进行“正确”的存储和得到“正确”的结果,最方便的是在所有query开始之前执行一下:

SET NAMES 'gbk';

其中gbk是数据库字符集。

它相当于下面的三句指令:

SET character_set_client = gbk;
SET character_set_results = gbk;
SET character_set_connection = gbk;

4.1和5.0默认使用的是latin1字符集(木头:妈的,老外真霸道,妄想让全世界都是使用瑞典字符集吗)

上一页  1 2 3 4 5  下一页

Tags:Mysql 数据库 字符集

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接