• 关于Mysql字符集问题的问答总结
    时间:2009-09-20   作者:佚名   出处:互联网

    数据库用着方便,可是牵扯到字符集问题着实烦人,现在总结一下大家常碰到的问题,以解朋友们的困扰。

    问: 如何设定连接服务器时的字符集?

    答:

    1、) 登录服务器后,执行 SET NAMES ‘utf8’; 这样的SQL语句来设定连接字符集为 utf8
    2、) 用GUI客户端(如Navicat/MySQL Front)连接服务器时,设定字符集
    3、) 用 PhpMyAdmin 连接时,在登录页面选择正确的字符集

    问:如何为一个数据库指定字符集?

    答:

    指定数据库字符集后,该数据库下创建的表默认都采用该库指定的字符集。

    1、创建数据库时,指定其字符集

    CREATE DATABASE db DEFAULT CHARSET UTF8;

    2、或者采用 ALTER 语法来转换字段的字符集

    ALTER DATABASE db DEFAULT CHARSET UTF8;

    问:如何更改MySQL的默认字符集

    答:

    方法1、 用 SET 语法来指定,不加 "GLOBAL" 的话就只对本次会话有效

    SET [GLOBAL] character_set_client     = utf8;
    SET [GLOBAL] character_set_connection = utf8;
    SET [GLOBAL] character_set_database   = utf8;
    SET [GLOBAL] character_set_results    = utf8;
    SET [GLOBAL] character_set_server     = utf8;

    方法2、 也用SET语法,只对本次会话有效

    SET NAMES 'utf8';

    方法3、) 直接修改 my.cnf,增加一行内容,然后重启 MySQL,使之全局生效

    default-character-set = utf8

    问:如何为一个数据表指定字符集

    答:

    指定数据表字符集后,该数据表里的所有字符型字段默认都使用该表指定的字符集。

    1、创建数据表时,指定其字符集

    CREATE TABLE tbl
    (
    ......
    ) ENGINE = MyISAM DEFAULT CHARSET UTF8;

    2、或者采用 ALTER 语法来转换字段的字符集

    ALTER TABLE tbl CONVERT TO CHARACTER SET utf8;

    3、采用其他客户端工具来设定,例如 Navicat/MySQL Front/PhpMyAdmin

    问:如何为一个字段指定字符集?

    答:

    尽管数据表创建时已经指定默认字符集了,但是该表里面的字段还是可以指定自己的字符集的。

    1、创建数据表时,指定其字符集

    CREATE TABLE tbl
    (
    ......
    name CHAR(20) CHARACTER SET UTF8,
    ......
    ) ENGINE = MyISAM DEFAULT CHARSET UTF8;

    2、或者采用 ALTER 语法来转换字段的字符集

    ALTER TABLE tbl CHANGE name name CHAR(20) CHARACTER SET utf8;

    3、采用其他客户端工具来设定,例如 Navicat/MySQL Front/PhpMyAdmin



    网友留言/评论

    我要留言/评论