关于mysql的默认字符集

mysql的字符集需要设置服务器和客户端两种方式,单独都可以设置。

客户端可以通过phpmyadmin等设置,服务端需要修改my.ini

my.ini在linux下是my.cnf

其中都有两处需要修改,默认字符集是liant1

 找到[mysqld],
修改或增加以下行:
default_character_set=utf8
找到[mysql],
修改或增加以下行:
default_character_set=utf8

 重启即可修改服务端字符集。

 摘录高手文章,因未署名,在此感谢。

—————————————————————————————————————

    乱码的问题首先是来自于mysql4.1对于编码支持的重大升级,我不是搞技术的,不懂为啥要改成多编码的支持,就知道这是为了能够全球兼容。在4.0及以前,php程序和mysql之间的沟通是通过latin1编码的,不管数据是什么编码按照这个编码写入、取出,东西就不会变。4.1之后,mysql给了用户选择,只要说清楚用什么语言和mysql交流,mysql都可以来者不拒了。这个时候,分歧发生了:

    phpmyadmin是一款全球性的软件,它决定用全球兼容的utf-8和mysql沟通。但是,在mysql4.1之前的产品都是用latin1和mysql沟通的。那么,如果你通过phpmyadmin向mysql写入或者导入数据,你就用utf-8的编码把whatever的东西写入了数据库。如果你再用urf-8的编码读出来,不管是什么,就还原成之前的数据了。但是之前的php,都是用latin1和mysql沟通的,如果是通过phpmyadmin写入的数据,php程序就读不出来了;php写入的数据,phpmyadmin当然也认识不了。特别是现在大部分同学使用的都是虚机,phpmyadmin导入数据的做法必不可少,问题就随之而来了。

    解决办法:(凑合法,完美主义者不适用)

    既然之前问题定位在phpmyadmin和php程序之间鸡同鸭讲。那我们就有两种办法了,一种是php改口音,一种是phpmyadmin改口音。

    php改口音适合大多数情况,方法也很简单,只要在php程序的mysql_connect语句之后,加上一句“SET NAMES ‘utf8′;”。这样,php就改成了phpmyadmin的口音,天下和谐了。

    phpmyadmin改口音的情况不少,比如我现在用了一套toooooooold的加密php程序。而且处理出来的数据我还非要用phpmyadmin操作一下(累……)。找了一下办法,最快的办法就是给phpmyadmin打补丁。找到/libraries/select_lang.lib.php。找到”utf-8″ => “utf8″,把utf8改成latin1。这样你的phpmyadmin就可以读取出php写入的数据了,如果你不是写入的utf8的数据,那么你只要调整一下页面显示编码就可以了。

    其实随便改一下phpmyadmin就可以改页面显示编码了.把

‘zh-utf-8′          => array(’zh|chinese simplified’, ‘chinese_simplified-utf-8′, ‘zh’, ‘中文’)

    这一行,中-utf-8改成-gb2312。但是这样一改,就是要把”gb2312″ => “gb2312′要改成”gb2312″ => “latin1″了。然后立刻就奏效了。

    我研究了一下phpmyadmin的说名,其实大可以在它的config文件里选择和数据库沟通的编码和页面显示的编码(这种方法适合完美主义者)。但是英文的杀伤力还是不小,不如程序容易读啊。

    这种patch的方法倒是次要的,只要找到问题的症结,怎么改都可以了。但是这个经典的问题,却让我看到了全球化还是有不小的阵痛的。貌似每个php程序员都碰到过这种编码的经典问题。就是因为我们用的是各国人名共同创造的东西,之前创始者转制一点,谁造的听谁的,大家还可以勉强维持配合。社会进步了,基础的支撑者突然向世界开放之后,同一平台上运用标准的不统一成了巨大的阵痛。虽然以后不会再为了两个完全不同的汉字被mysql认为相等而头疼,但我至少花了5个小时在这个事情上,就算平均每个php开发者用1个小时,也是巨大的损失了。

——————————————————————————–

mysql_query(“set names utf8″);

mysql_query(“set names latin1″);

O,生日

今天和明天都是我生日,一个阳历一个阴历。

让这两天宣告我正式步入28岁,27岁的尾巴越来越小,抓也抓不住了。10年前,当我托这少年的大尾巴,如饥似渴的憧憬着我的未来的时候,却没有想到,现在,拖着青年大尾巴的我,不敢和10年前一样憧憬我的10年后,到那时候就是壮年啦。

趟过青春,岁月流逝,感叹时间越来越快,美好时光越来越少,人越来越忙,事越来越多,心情越来越烦躁,工作越来越难,钱越来越不好赚,反正,社会在发展,你就脱了裤子扒了鞋,赶紧撵,否则,就是掉队,牙都有可能被饿掉,真有那么严重?还别说,再过20年,还真就开始掉牙了,这可和20年前不一样,掉了就长不出来啦,怎么办?干,累死了算,累不死就是个赚。

想法越来越变态,这可不行,再苦再累,心态要正,遇事随和,平常心对待,天塌下来,姚明顶着。不苟且偷生,不随波逐流,认真对待走过的每一天,踏出的每一步,是我的总归是我的,不是我的,也别强求,不以物喜,不以己悲,不患得患失,擦亮睁大的眼睛,看清世界,掏顺竖起的耳朵,记住过去,将来的,一切都是美好的,因为,我还有理想,我还有追求,我有个博大宏远的人生观。

还不是一般的能吹,吹归吹,在这里,我要感谢我的父母,尤其是我的母亲,感谢她,27,不,应该是28,到底27还是28?反正,感谢她N年前生下我,给我这个机会遍历人生,走过岁月。同时,我还要感谢我的亲友,是他们的无私帮助,让我茁壮的成长到这么大。我还要感谢我的老师,是他们教我成长,还有我的朋友,是他们让我快乐,还要感谢CCTV/MTV…….

28岁,生日快乐。