Server-Side
django 很有意思,很有意思。
早在 2004 年,Tim Bray, Nick Bradbury 和 Mark Pilgrim 这几位大牛就有过一场著名的口水战,围绕着客户端是否应该接受不 valid 的 XML (XHTML) 而展开,这场口水战以 Mark Pilgrim 的一篇堪称经典的 Thought Experiment 而告结束。Mark 举的一个例子就是页面本来是完全 valid 的,但别人发来了一个 trackback,其中包含了非法的字符,导致整个页面都无法通过校验。
时至今日,一年半过去了,乱码的 trackback 仍然随处可见,我们的 blog 工具版本号一升再升,难道就是解决不了这个问题?
为什么要解决这个问题?
有人会问,为什么要解决这种问题呢?人人都用 UTF-8 不就好了么?没错,在一个理想的世界里,UTF-8 解决了一切问题。问题在于,在一个理想的世界里,M$ 不是坏蛋,IE 还支持 CSS 3 呢!所以我们不能依靠这种白日梦。踏实一点来看,我们现在生活的世界情况是这样的:Apache 占据了大部分的市场,PHP 和 Perl 是两种主要的 Web 脚本语言——尤其对 Blog 而言,MySQL 是大部分开源 Web 程序使用的数据库,可是主机服务上还往往不如人意,大部分的用户不能自如的指定自己 Blog 使用的字符编码,转换 MySQL 存储数据的编码也不是天天没事就能转来转去玩儿的。
这个环境,说明我们应该对他人的页面使用的编码宽容一些。
这个问题理应如何解决
Trackback 不是一个标准,更没有标准化组织进行维护,它只是 MovableType 中发明的一种格式,最权威的说明,就是这篇 [...]
这个东东本来已经快写完了,结果 Firefox 居然崩溃了,前边写的全丢失,打倒 Firefox!
Vanilla 是个新出的论坛系统,里边有不少新概念,比如 AJAX 的运用,Atom 1.0,OO 的 PHP 开发方式,CSS 中对手持设备的支持,等等。可惜作者的水平显然还不算老练,本地化特别不方便,而是性能特别差,三是 bug 还很多,作者改 bug 又很慢。所以注定是个玩具了。建议认真想开论坛的现在别用。
昨天看了 Jedi 的 Vanilla 的中文化,便手痒找来玩玩,有几个小 bug,原来详细写了,刚才丢了数据,也懒得重新写,简单说说吧。
配置文件不支持中文,解决方法看这里。 MySQL 4.1,论坛内容不支持中文,解决方法看这里。 PHP 5,扩展列表有错,解决方法看这里。 中文化中遇到的问题,过几天整理一下再细写。
这不是一个 WordPress 和 MovableType 二分天下的世界…… 除此之外,另类的 Blog 系统还是很多的:
blosxom: Perl NanoBlogger: Bash Serendipity: PHP Typo: Ruby
All cool, all interesting, and … all standard compliant. Have fun!
下面要写的是一篇非常无聊的东西,充斥了大量各式各样的编码、转换、客户端、服务器端、连接……呃,我自己都不愿意去看它,但想一想,写下来还是有点意义的,原因有四:
MySQL 4.1 对多语言的支持有了很大变化 (这导致了问题的出现); 尽管大部分的地方 (包括个人使用和主机提供商),MySQL 3 仍然占主导地位;但 MySQL 4.1 是 MySQL 官方推荐的数据库,已经有主机提供商开始提供并将会越来越多; 许多 PHP 程序以 MySQL 作为默认的数据库管理软件,但它们一般不区分 MySQL 4.1 与 4.1 以下版本的区别,笼统地称“MySQL 3.xx.xx 以上版本”就满足安装需求了; 因为 latin1 在许多地方 (下边会详细描述具体是哪些地方) 作为默认的字符集,成功的蒙蔽了许多 PHP 程序的开发者和用户,掩盖了在中文等语言环境下会出现的问题;
简单的说,MySQL 自身的变化和使用 MySQL 的 PHP 程序对此忽略,导致了问题的出现和复杂化,而由于大部分用户使用的是英文,使这种问题不被重视。这里提到的 PHP 程序,主要就 WordPress 而言。
© jjgod / blog. Powered by WordPress using the DePo Skinny Theme.