免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1405 | 回复: 0
打印 上一主题 下一主题

关于mysql的set names charset [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-02 20:58 |只看该作者 |倒序浏览
   mysql的字符集问题,令很多人感到头疼。以至于让很多新手就此否定mysql。mysql的字符集确实有很多学问,看了一些相关的技术文章mysql在字符集处理上分为四个层面,理解起来也实在让人费劲。如果仅仅是解决乱码问题,我发现根本没有必要完全弄懂mysql的这些复杂处理过程。使用set names charset 就可以解决绝大多数的乱码问题。
  
   mysql的set names charset是通知mysql服务器客户端的编码情况。如果是查询select则返回以charset为字符集的结果;如果是update或者insert,mysql则会将客户端的字符串按charset指定的编码转换成数据库设定的编码。这样就可以避免了乱码。
   
   比如,数据库使用utf8的编码,而页面使用gb2312的编码。就可以在查询之前执行set names gb2312,这样就可以返回gb2312的内容。插入或者更改数据库前执行set names gb2312,mysql会将插入内容从gb2312转化为utf8让后插入数据库中。

   这样可以解决大部分问题,但是我见过例外的情况,其中原因我是百思不得其解。如果有高手路过请指示一二,感激不尽啦!

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/49103/showart_394037.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP