首頁 / 文章導讀 / 約耳趣談軟體 / Knowledge Gained by The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

Knowledge Gained by The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

在讀完The Joel Test: 12 Steps to Better Code之後,ㄚ琪繼續閱讀每個軟體開發者都絕對一定要會的Unicode及字元集必備知識(沒有藉口!),這一章對ㄚ琪來說衝擊較小,可能我們是東方人在電腦上要用Unicode的概念較強吧!

ㄚ琪只在這列一些重要的敘述:

PHP是個很普遍的web開發工具,不過它完全忽略字元編碼問題,嗯,但是正如課本的註解,PHP確實很快就有Unicode的支援了,而且ㄚ琪還用得很愉快說!

古老美好的無重音英文字母,我們有一個對應的編碼系統叫做ASCII,大家也很熟悉吧!

WordStar是如何地使用32到127的數字,課本另加了解釋,它在找字尾時只要檢查最高位元為1即可,否則得檢查下一個字元才能判斷,這個軟體在很久以前有聽過,但是沒怎麼在用,可想而知是對東方人很不便,倒是PE2用的很多!

不同的地方用不同的系統就叫做頁碼(code page),這觀念跟我們很久以前在談論Windows的頁碼是950是同一碼事。

charmap工具的使用,這什麼啊?還滿高興用的,結果才發現不就是字元對應表嗎?真沒什麼大學問!

2010-07-16_111904

確實可幫助瞭解A是U+0041,但如果沒有這個程式,就只有到Unicode網站看了!

Unicode Byte Order Mark的問題以前也困擾著我們存程式碼要存有BOM還是沒有BOM,這在不同作業系統會有差異喔!

有人發明UTF-8這個絕佳的點子,真的是造就我們現在寫程式的方便,雖然有些就程式還得改一下以配合UTF-8的使用,新的UTF-8標準有空一定要好好去看一下!

常見的英文文字編碼有Windows-1252 (Windows 9x對西歐語言的標準)和ISO-8859-1又名Latin-1(也是用於西歐語言),這個問題也曾讓我在MySQL的Latin-1的問題中,搞了很久,浪費很多生命在這!

Postel’s Law中關於「發送時嚴謹,接收時寬鬆」的論點實在不是一個良好的工程原則,我想我最近碰到的Firefox Content Encoding Error的問題,就是這個吧!但是課本寫這個工程原則跟維基的有點出入?「Perhaps his most famous legacy is from RFC 793, which includes a Robustness Principle which is often labeled Postel’s Law: “be conservative in what you do, be liberal in what you accept from others” (often reworded as “be conservative in what you send, liberal in what you accept”).」這裡提到的是RFC 793而不是RFC 791,有興趣的人可以驗證一下!

Print Friendly, PDF & Email
馬上成為工作達人的Fans

About ㄚ琪

工作達人Fun Taiwan的創辦者及總編,可以在這裡更認識他。

發表迴響

你的電子郵件位址並不會被公開。 Required fields are marked *

*

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

Scroll To Top