作者: 車東 Email: chedongATbigfoot.com/chedongATchedong.com
寫于:2002/07 最后更新:02/22/2006 14:42:55
版權聲明:可以任意轉載,轉載時請務必以超鏈接形式標明文章原始出處和作者信息及本聲明
http://www.chedong.com/tech/hello_unicode.Html
要害詞:linux java mutlibyte encoding locale i18n i10n chinese ISO-8859-1 GB2312 BIG5 GBK UNICODE
內容摘要:
不知道你有沒有這樣的感受:為什么php很少有亂碼問題而用Java做WEB應用卻這么麻煩呢?為什么在Google上能用簡體中文查到繁體中文,甚至日文的結果?而且用Google的時候發現它居然能自動根據我使用瀏覽器的語言選擇自動調出中文界面?
很多國際化應用的讓我理解了這么一個道理:Unicode是為更方便的做國際化應用設計的,而Java核心的字符是基于UNICODE的,這一機制為應用提供了對中文“字”的控制(而不是字節)。但假如不仔細理解其中的規范,這種自由反而會成為累贅,從而導致更多的亂碼問題:
注重:以下說明不是嚴格定義,一些比喻僅作為方便理解使用。
假設一個字符就是棋盤上的一個棋子,有其固定的坐標,假如需要區別所有的字符,就需要有足夠的棋格容納不同的“字符”?!?/p>
英文和歐洲其他語言的單字節字符集(SingleByte Charsets):
首先對于ISO-8859系列的字符集都想象成一個:2^8 = 16 * 16 = 256個格子的棋盤,這樣所有的西文字符(英文)用這樣一個16×16的坐標系就基本可以覆蓋全了。而英文實際上只用其中小于128(/x80)的部分就夠了。利用大于128部分的空間的不同定義規則形成了真對其他歐洲語言的擴展字符集:ISO-8859-2 ISO-8859-4等……
新聞熱點
疑難解答