注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

骐骥一跃

日积跬步 业精于勤荒于嬉

 
 
 

日志

 
 

[存档]MySQL的字符集  

2009-02-23 16:09:34|  分类: 数据库 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

摘自:http://www.surfchen.org/wiki/MySQL%E7%9A%84%E5%AD%97%E7%AC%A6%E9%9B%86

 

MySQL有两个和字符集有关的概念。一个就是字符集本身,一个是字符集校验规则。字符集影响数据在传输和存储过程中的处理方式,而字符集校验则影响ORDER BY和GROUP BY这些排序方式。

目录

[隐藏]

和存储有关的

  • 服务器字符集(@@character_set_server)
  • 库字符集(@@character_set_database)
  • 表字符集
  • 字段字符集

在创建一个表的时候,每个字段只要不是binary,都会有一个字符集。(?)当然,如果不指定,那么在SHOW CREATE TABLE的时候,它是不会显示出来的。

建表时候,字段字符集的选取方式如下:

  • if 字段指定的字符集
  • else if 表指定的字符集
  • else if @@character_set_database
  • else @@character_set_server(如果没有设定,这个值为latin1)

和传输有关的

  • @@character_set_connection
  • @@character_set_results
  • @@character_set_client

相互之间的影响

假设C是MySQL客户端,S是MySQL Server。

C发送请求到S

  • S会把请求的数据从@@character_set_client转成@@character_set_connection。
  • 然後S会检测相关字段的字符集,则把数据从@@character_set_connection转为字段的字符集,然後再存储或者查询。
  • 如果S有数据(result)要返回给C,那么S会把取出的数据,从字段的字符集,转为@@connection_result,然後再发送到C

其他

到MySQL5.1.22为止,如果要修改默认的character_set_client,character_set_connection,character_set_result。只有在my.cnf里添加如下启动选项: init_connect="SET NAMES utf8" default-character-set只是针对存储层(server,database,table,column)的,对于客户端和服务器端的通讯层没有任何影响。

  评论这张
 
阅读(576)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018