PHP的编码转换的问题

今天准备将IP Search添加到Blog中,结果发现一个问题:纯真数据库使用了gb2312编码,而wordpress用的是utf-8编码。页面显示的是乱码,所以需要找到一个办法在PHP中实现两种编码的互转。 看看PHP Manual,似乎PHP没有像.Net那样专门提供一个Encoding的类,所以只能用其他方法了。网上的方法有两种: 第一种是使用iconv 函数。例如, 下面的例子是利用php将”全”这中编码转换为gb2312.: [coolcode lang=”php”]$str = “TTL全天候自动聚焦”;$str = preg_replace(“|&#([0-9]{1,5});|”, “”.u2utf82gb(\1).””, $str);$str = “$str=”$str”;”; eval($str);echo $str; function u2utf82gb($c){$str=””;if ($c < 0x80) {$str.=$c;} else if ($c < 0x800) {$str.=chr(0xC0 | $c>>6);$str.=chr(0x80 | $c … Continue reading

满满长夜

火车上的第二天,理论上我已经忍了17个小时了,超过了整个行程的一半,更重要的是,我已经熬过了最难熬的时刻——晚上。漫漫长夜,无心睡眠,内心的悸动加上外界的喧闹,睡觉已经成为了一种奢望。我从晚上十点,尝试了各种不同的睡姿,比较各种姿势的优缺点,最后发现在这该死的火车上,根本就没有所谓的最好的睡姿。所以最后我就睡了大约两个小时低质量的觉。现在已经是凌晨五点多了,外面还是漆黑一片,冬天的太阳总是那样怠工。写到这里,先给一个中断信号,买早餐的阿姨看见我正在写blog(首先,我个人认为她并不知道什么叫blog,但是不出意外的话应该知道日记,其实概念上两者是等价的;其次,她应该是看到我用的纸才停下的——我的纸是上次在北大买的,有很醒目的“北京大学”的logo)。我问我复旦、上交、浙大和同济的排名,说实话,我对这种排名并不感兴趣,前几天还出炉了一个什么最受尊敬的大学排名,结果Top10中有七个是北京的,还有一个是兰大。不是我的偏见,但正如评论说的那样,鬼知道这种排名背后的东西!但至于阿姨的问题,我回答,如果你能去这几所大学的话,唯一要考虑的几句是专业了,的确是这样,在一所大学中(北大清华除外),好专业和烂专业有天壤之别,这在找工作的时候尤为明显,人家就招专业对口的,毕竟宝洁这种重视自身素质的公司还是少数。说道这个阿姨,还真是K58上的一道风景,每次来回卖盒饭的时候,总是吆喝:好吃的盒饭,贼好吃的盒饭;小姑娘,你看车外多冷,吃完盒饭出去多好!最后一趟,菜往死里打!……搞的我们在背地里抓狂。中断返回,一眨眼,火车已经停在了德州,当然不是德克萨斯:)而是盛产烧鸡的中国德州。提到烧鸡,现在我应该是很饿——饿到极点也就不觉得饿了——但是好像没有什么胃口。今晚,会有一顿美餐等着我,这也是为什么回家的重要原因之一。尽管我告诉妈妈搞简单一点,不想让她今天太忙了,但是直觉告诉我,老妈必然会准备我的最爱——可能有些东西我也不知道什么时候成了我的最爱了——比如说是小肥羊。这里说明三点,第一,其实我当时想的是红烧肉,事实证明老妈果然带了红烧肉!第二,小肥羊是我在哈尔滨fall in love的,但是没有想到后来我竟然发现桐乡开了至少两家小肥羊。第三,在打这篇文章的准确时间是8 Jan 8:15pm,这个时候正是我吃完牛肉煲之后的一个小时左右,在一个小时以前,我正式地喜欢上了牛肉煲这种东西。实在是很好吃:)

此党非彼党

列车始终在颠簸,尽管在夜间还是如此,我的心也有点颠簸了。下午,老童打电话过来,这种事情没有先例,所以即使是长途加漫游也忍了。但是他的话还是没有听懂,好象是关于宋老师的,说是明天QQ上再聊;祸不单行,我的按摩器也忘了带回来了,郁闷中……在火车上的时光总是异常无聊的,以至无聊地让你不知道该做什么事,因为做任意一件事的后果还是无聊。实在无聊了,就去注意平时都不会注意的东西,刚才听到乘警介绍,注意到一句话:我们一定会忠于党,忠于国家,忠于人民,忠于法律。听到这句话,心里便有一丝涟漪。最近看了一些西方的电影,发现他们的价值观就是自由,其他的民主、国家、人民还有法律都是基于自由构建的。美国独立战争是为了是十三个殖民地获得自由,美国的Cival War是为了几百万黑奴的自由,而我更忘不了华莱士的那一声“Freedom……”的呐喊。似乎对于西方人,自由也是他们的基本生存权力。而所谓的“党”,在我看来,只不过是一种制度,或者说是一种国家机器。在中国,“忠于党,忠于人民”已经成为了一种习惯用语,习惯地如果没有人会将两者颠倒一下。在西方一个人可以随意的加入任何一个政党,对于他们,自然不会理解为什么党比人民重要。前几天刚刚听了何清涟的“三个代表”论,的确给人一种震撼。她说,为什么搞三个代表?为什么代表先进生产力,为什么代表先进文化,为什么代表最广大人民的根本利益?因为最广大人民的利益是党一直提的,重要的前两者,人民是不能代表先进生产力和先进文化的,代表它们的只能是政治和经济上的精英,换句话说,就是统治阶级和有钱人。那么忠于党,忠于人民就成了忠于统治阶级,忠于人民了,which makes sense。相比于君主们,党是聪明的,因为他们发明了“党”这个东西。君主们要维护自己的统治,就要管住百姓的大脑。于是他们想各种办法,最简单的就是愚民政策,焚书坑儒,文字狱,让自己的臣民成为只会说话的机器。但是人毕竟不是机器,这种手段的效果在现在已经大大减小了。还有的君主借用了某种学说,废黜百家,独尊儒教是一种,五斗米道教,拜上帝教也算一种(我从不认为洪秀全是什么农民起义者,他也只不过是一个梦想作皇帝的人而已,中国的思想程度不可能使他变成民主斗士),但是他们都失败了,因为这些学说都不是为他们量身定做的。其中最好的算是儒教,但是那也是因为朱熹将儒教改编之后,让所有人学习他的八股文,这样才满足统治者的要求。所以在中国出现了,对于广大的庶民,基本上是文盲,而对于士大夫,有全部苦心钻研八股。即使这两部分实现了分而治之,但是出现了两种价值观、两种国家观和两种法律观。大夫认为,国家兴亡,匹夫有责;匹夫认为,谁给我饭吃,谁就是我的皇帝。大夫认为,礼不下庶人,刑不及大夫;庶人认为,皇子犯法,于庶民同罪。对于大夫来说,最重要的是道、是皇帝;对于庶民来说,最重要的是米、是生活。正因为这样,清军入关后,士大夫组织了义军,因为北蛮犯境,国家在危难之中;而后来,当清朝要求汉人剃发,这就引起了汉族不同平民的起义,导致了骇人听闻的“嘉定三屠”和“扬州十日”,因为满族人改变了他们的生活习惯,宁可落头也不落发。这就是两种价值观的体现,这也是中国的不安定的因素。在民国,一方面,外侮之下,精英们准备实业报国、军事报国,而另一方面,百姓们入不敷出,于是开始造反,所以有了“攘外必先安内”的政策。在这方面,党就英明神武多了,他自我定位于全民的党。于是在共产主义的简体中文版中,上述的bug似乎完美地解决了,全民共享一个马克思主义。更重要的是,党将这种思想融入到他的日常活动,甚至是国家决策中,这就是我为什么说党是一中制度的原因。党大会总比全国代表大会重要。从这点上说,中国有点想政教合一的伊朗、梵蒂冈,马克思主义何尝不是一种宗教呢?共产主义和天堂有什么本质的区别吗?它们都是遥不可及。马恩毛列与上帝有什么区别吗?红卫兵对毛的虔诚连基督徒都自叹不如;人们开玩笑说自己死就是去见马克思。马克思全集和圣经有什么区别吗?党的理论学家对全集经典的熟悉和“创新”连神学院的教授也未必能及。所以,永远不要和外国人谈党,因为你们在说两个风马牛不相及的东西。

Compile Linux Module

在学习内核的时候总是有一种在学习理论的感觉。应该很多东西都实验不了。比如说内核的寄存器、全局变量等等。像内核空间的地址在正常的用户空间就根本接触不到。 但是当我看到了Linux的模块的时候,我发现这个问题解决了!我们完全可以通过插入一个自定义的模块来了解内核态的情况。 于是,今天依样画葫芦写了一个helloworld的模块。代码如下: hello.c [coolcode lang=”cpp”]#include “linux/init.h”#include “linux/module.h”MODULE_LICENSE(“GPL”);static int hello_init(void){printk(“Hello,world!n”);return 0;}static void hello_exit(void){printk(“Good Bye!Exit!n”);}module_init(hello_init);module_exit(hello_exit);[/coolcode] Makefile:[coolcode]obj-m += hello.odefault:make -C /usr/src/linux SUBDIRS=$(PWD) modulesclean:rm -f .*.cmd *.mod.c *.o *.ko -r .tmp*[/coolcode]很奇怪的Makefile,不是吗?当然,这个是2.6内核专用的。更奇怪的是,我make的时候出了好多错: make -C /lib/modules/2.6.8-2-686-smp/build/ SUBDIRS=/home/marvel/programming/module modulesmake[1]: Entering directory … Continue reading

元旦

这是2006年的第一个晚上,可惜我却没怎么意识到这一点。除了BBS上的十大和日历中的1.1,没有任何迹象说明这是新的一年的开始。 这是我在哈尔滨待的第一个晚上,也是最后一个晚上。前者是就阳历2006年而言,后者是就阴历2005年而言。明晚,我已经在南下的火车上了。 很有意思,今年我是我们寝室第一个走的。而去年,我是最后一个走的。当时,我在寝室中一个人睡,那时候有传闻,一个研究生在寝室里一个人住,结果吃烧鸡中毒,死了。想想的确挺恐怖的,打开门,竟然发现一个死了有多日的人!而那个人,自己在over的时候,我不知道他的感觉是什么样的,但我知道那晚,我的确是比较害怕、无助。在二公寓这种连凌晨三点都会有人的“干净”的地方,谈鬼无非是自己吓自己。那晚我真的被吓倒了,至少是失眠了。要知道,失眠对于我来说,是上个世纪的事情了,这个问题以后再谈。回到现实,我要早点回去收拾东西。走在马路上,从来没有发现原来这里还是这么美。马路上因为下雪的关系,现在都是冰渣,在这种环境下,更准确的说应该是冰晶。它们在路灯下,在月光下,随着我的移动,不断变换着闪烁着,那效果,即使是最好的灯光师也无法做出来的。而我,仿佛是亲身经历一出绝伦的舞台剧。 是啊,我何尝不是在经历舞剧呢?悲剧、喜剧、正剧,每天都在上演,今天,也许我是主角,也许是一个路人甲。我不是一个好的演员,聚光灯下表现得不如平常放得开,但是毫无疑问,我会尽力演好我的角色。 人生不乏高潮,我不喜欢高潮,因为这意味着你必须为高潮付出很多铺垫,这通常很累。高潮越高,铺垫就越多。高潮之后,留下的是真空,高潮越高,真空越空。所以,我宁愿去演肥皂剧,每天都是温馨的生活,如果实在心里闷的慌,可以不经意的制造一些高潮,但是还是会围绕温馨这个主题。所以我特别想做阿甘那样的人,他的生活就是我的桃花源境。做人可以不考虑太多得失,想跑就跑,想停就停。做自己爱做的事情,也许这就是生活……