这两天被UTF-8的事情搞的有些焦头烂额,碰巧mikliker推荐我看一篇blog:是否需要统一编码(http://tristones.viaspeip.com/archives/000478.html)。想想也没有向大家详细讲过utf的问题,那就在睡觉前写一篇吧。

首先澄清一个问题。China Bloker推荐采用UTF-8编码,不带有任何政治因素,也没有两岸的一方压倒另一方的意思。我们的这个建议,更大程度上是从技术角度出发的。

事实上,UTF-8更为普遍的区域,恰恰就是对岸的同胞所在的网路。在大陆地区,用UTF-8编写的程序和制作的网页都还比较少。如果您知道大五码big5的一个十分重大的缺憾(所谓冲码问题),那么就不难理解为什么在港台很多作者倾向使用UTF-8也就是他们称呼的万国码了。最简单的概括,就是大五码本身设计上的缺陷使得PHP甚至UNIX系统在处理汉字时将一部分汉字的一部分误认为控制符。因此,采用UTF-8,是最好的解决冲码问题的方法。在黑杰克网友尝试繁体化本程序的过程中,我和他就共同探讨出了用UTF-8代替big5的必要性了。

其次,建议统一UTF-8编码,和改动RSS的程序使之可以接受gb/big5的做法,都一样是在从技术角度上解决沟通的问题。而我们之所以不建议通过程序本身在接受trackback时完成编码的转换,自然也是从技术难度上出发的。PHP和ASP是两个最流行的网络脚本语言了,asp我不熟,但是记得loveyuki曾经说过,asp要转码也不是易事,还牵涉到IIS。至于PHP,大家都看到了,一定要好心的服务器管理员们安装iconv的组件才能完成编码转换。从技术角度上说,当然是大家都用同一个编码更容易实现了。

撇开技术的问题,我还想从China Bloker的成立目的讲讲。China Bloker不是企图成为中国博客程序的规范制定者,我们只是一个自愿加入,互相交流最新想法的组织。或者说,China Bloker是一个平台,程序作者可以在上面提出他的一个创意或者一个改进的思路,然后由他自己或者别的有能力者去完善和实现这个思路,使之成为现实。就好像现在在建的几个项目,都在等待一个从蓝图到事实的过程。所以,不是光说不练的,也不是高高在上的,更不是权威的觊觎者。如果China Bloker成功,那么这个成功的表现形式一定是,上面的某个项目被我们中的一个blog程序实现了出来,而且其他blog看到了这个创意(或者说新功能)的好处,而愿意在自己的blog里也加入这个功能,觉得不好的创意则忽略。这才是自由的网络应该提倡的:共享、互利和共同推广。

是的,正如mikliker所说,也许会失败,也许很多人,也许甚至包括我们自己在若干年后,会觉得我们是多么的幼稚。但至少现在,这是我们的梦想,也是我们试图推进China blogs 的一项努力。
供為本程式進行繁體化努力的網友參考:
原文連結:http://www.dev.idv.tw/wp/index.php?p=58


Big5碼中容易衝碼的文字
Filed under: Programming Software Engineering— garylee @ 10:19 am
Big5中由於當初設計上的疏失,導致一些屬於控制字元的資料容易引起一些程式環境的誤判。造成顯示出來的中文字不是我們想要的結果。所以我們在寫程式的時候對於中文的處理要特別小心。下面列出了一些容易引發衝碼的文字,寫程式的人,最好都能夠測試下面的字在你的程式中可以正確無誤的被使用。

ASCII(5C) == “\\”

A45C么 AE5C娉 B85C稞 C25C擺 A55C功
AF5C珮 B95C鈾 C35C黠 A65C吒 B05C豹
BA5C暝 C45C孀 A75C吭 B15C崤 BB5C蓋
C55C髏 A85C沔 B25C淚 BC5C墦 C65C躡
A95C坼 B35C許 BD5C穀 AA5C歿 B45C廄
BE5C閱 AB5C俞 B55C琵 BF5C璞 AC5C枯
B65C跚 C05C餐 AD5C苒 B75C愧 C15C縷

ASCII(7C) == “|”

AA7C泜 B47C揉 A87C育 BE7C魯 B27C琍
BC7C慝 C67C鸛 A97C尚 B37C逖 BD7C罵
A77C坑 B17C悴 BB7C誡 C57C疊 A67C帆
B07C院 BA7C漏 C47C辮 AB7C咽 B57C稅
BF7C糕 AC7C洱 B67C閏 C07C嚐 AD7C迢
B77C會 C17C舉 A47C弋 AE7C徑 B87C腮
C27C甕 A57C四 AF7C砝 B97C頌 C37C牘



由於受到WDB作者旅行早期程式的影響,我也習慣使用竪綫作爲分割符號,這就造成以上包含這一符號的文字在存入檔案時一半編碼被過濾,導致了嚴重的衝碼問題。

解決思路:
一是大家已經在作出嘗試的,改寫程序的過濾部分,但仍無法完全規避以上問題。原因是,許 蓋 功 的文字產生衝碼的根源不在本程式本身。
二是UTF-8化,這樣可以徹底解決衝碼。
關於UTF文件打開時,由於伺服器端強制了編碼(big5)而導致需要手動切換瀏覽器設置的問題,我會在程式中添入編碼申明以解決。

又及,我又發現了這篇記錄,可能對繼續堅持big5編碼的作者有用:
http://forum.kmd.com.tw/article5.html
文章很長,就不引用了,GENES您可以使這裡用一下文中提及的那兩個函式,可能可以解決問題,因爲本程式不使用mysql,所以會比文中所述簡單。mute
分页: 4/4 第一页 上页 2 3 4 最后页 [ 显示模式: 摘要 | 列表 ]


Powered by Bo-Blog 2.1.1 pre RCCode detection by Bug.Center.Team
沪ICP备05032643号

© 2008 博睿智 Marshal Design Bo-blog offcial theme