mysql编码设置为utf8

mysql 创建 数据库时指定编码很重要,很多开发者都使用了默认编码,乱码问题可是防不胜防。制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。
     网页数据一般采用UTF8编码,而数据库默认为latin 。我们可以通过修改数据库默认编码方式为UTF8来减少数据库创建时的设置,也能最大限度的避免因粗心造成的乱码问题。
      我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来
我们可以通过命令查看数据库当前编码:  
         mysql> SHOW VARIABLES LIKE 'character%';
  发现很多对应的都是   latin1,我们的目标就是在下次使用此命令时 latin1能被UTF8取代。
 第一阶段:
     mysql设置编码命令
[sql]  view plain copy
  1. SET character_set_client = utf8;  
  2. SET character_set_connection = utf8;  
  3. SET character_set_database = utf8;  
  4. SET character_set_results = utf8;  
  5. SET character_set_server = utf8;  
    然后 mysql> SHOW VARIABLES LIKE 'character%'; 你可以看到全变为 utf8 。
      但是,这只是一种假象
      此种方式 只在当前状态下有效,当重启数据库服务后失效
所以如果想要不出现乱码只有修改 my.ini文件,
       从my.ini下手(标签下没有的添加,有的修改)
         [client]
           default-character-set=utf8
         [mysql]
           default-character-set=utf8
         [mysqld]
   character-set-server=utf8      //注意这里和client,mysql加的是不一样的!!!!!!!!!!!!!!

 注意: mysql到了5.5版本, [mysql] 项内可以写default-character-set=utf8, 但是[mysqld] 项内不能再这么写了,而是必须写:character-set-server=utf8

    以上3个都搞定后重启mysql,执行
         mysql> SHOW VARIABLES LIKE 'character%';
     即会显示除了 character_set_filesystem外其他全部为utf8


注意:
经本人试验第一阶段过后,除了character_set_filesystem外其他全部为utf8。如果你们在第一阶段过后仍然character_set_server   显示为  latin1 ,那么进行第二阶段(我没用过第二阶段的,所以你们自己试吧)  。
  第二阶段:找到下面这东东
     X:\%path%\MySQL\MySQL Server 5.0\bin\MySQLInstanceConfig.exe
   重新启动设置,将默认编码设置为utf8.这样就能达到我们所要的效果了
    mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+---------------------------------------------------------+
| Variable_name                  | Value                                                                            |
+--------------------------+---------------------------------------------------------+
| character_set_client       | utf8                                                                              |
| character_set_connection | utf8                                                                              |
| character_set_database    | utf8                                                                              |
| character_set_filesystem | binary                                                                           |
| character_set_results      | utf8                                                                              |
| character_set_server       | utf8                                                                              |
| character_set_system       | utf8                                                                              |
| character_sets_dir          | C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set

    

另外注意事项
1、建表时加utf8,表字段的Collation可加可不加,不加时默认是utf8_general_ci了。
[sql]  view plain copy
  1. CREATE TABLE `tablename4` (  
  2. `id` int(11) NOT NULL AUTO_INCREMENT,  
  3. `varchar1` varchar(255) DEFAULT NULL,  
  4. `varbinary1` varbinary(255) DEFAULT NULL,  
  5. PRIMARY KEY (`id`)  
  6. ) ENGINE=MyISAM DEFAULT CHARSET=utf8  


2、网页xxx.php/jsp保存时选择utf8编码,页头最好加上, 目的是告诉浏览器用何种方式来编码
         header('conten-type:text/html;charset=utf-8');

在执行CRUD操作前先执行一下
         mysql_query("set names utf8");






  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值