[java]關於編碼big5及Unicode utf-8

[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編譯執行):
 

截圖090

 
執行結果(用dos視窗編譯執行):

截圖089

注意兩個結果的最後一行
NetBeans跑出來的"菜"字編碼是utf-8的編碼方式
但dos視窗跑出來的"菜"字編碼是big5的編碼方式
 
從結果可以發現NetBeans和dos視窗跑出來的結果預設的編碼居然是不一樣的
在程式撰寫(尤其是這支程式要發訊息給別人的程式)最好在程式碼裡就確定好你的編碼
才不會到了別台電腦會有不同的編譯問題
 

紫菜,肖想用貧弱的程式能力成為厲害的工程師

逢甲大學資工系  , 不知道能不能畢業 

信箱:budspudding@gmail.com