[java]關於編碼big5及Unicode utf-8
說到平常使用上的編碼之類的問題
一定要提一下批踢踢的一篇精華區文章
是在討論編碼big5和utf-8
如果不知道big5是做什麼的可以參考一下「維基百科 大五碼」
以下藍字內容完全引述這篇文章
Re: [問題] 請教 Big5 和 UTF-8 的編碼差異...
Big5 有幾個特色
1. 每個中文字使用 2 bytes
2. 因為制定者腦殘,用到了控制碼
所以許多程式與軟體都會有許、蓋、功這類中文字的沖碼問題
3. 延伸字集中,有簡體字但是沒有定義日文字
UTF-8 則有以下特色 1.採用變動大小,中文字使用 3 bytes,英文則維持 1 byte 因此若轉碼後,資料庫整體會變成 1.5 倍大,200MB(Big5) -> 300MB(UTF-8) 2.支援所有語言文字,還有一些怪怪圖形:P 3.簡體與正體中文重複字只定義一次,例如說,簡體的"山",跟正體的"山" 是同一個 UTF-8 編碼
一言以蔽之
平常要用的時候
還是UTF-8的編碼會比較好用一點點
因為他包山包海又有別國的字
用程式碼來看的話
執行結果(直接用netBeans編譯執行):
執行結果(用dos視窗編譯執行):
注意兩個結果的最後一行
NetBeans跑出來的"菜"字編碼是utf-8的編碼方式
但dos視窗跑出來的"菜"字編碼是big5的編碼方式
從結果可以發現NetBeans和dos視窗跑出來的結果預設的編碼居然是不一樣的
在程式撰寫(尤其是這支程式要發訊息給別人的程式)最好在程式碼裡就確定好你的編碼
才不會到了別台電腦會有不同的編譯問題
紫菜,肖想用貧弱的程式能力成為厲害的工程師
逢甲大學資工系 , 不知道能不能畢業
信箱:budspudding@gmail.com