Re: [請益] Unicode, UTF-8, UTF-16, UTF-32?

作者: LPH66 (-6.2598534e+18f)   2014-03-29 21:50:54
※ 引述《x2006 (冬眠)》之銘言:
: Unicode的檔案是不是只分為底下五類?
: 00 00 fe ff : UTF-32, Big Endian
: fe ff 00 00 : UTF-32, Little Endian
ff fe 00 00
: fe ff : UTF-16, Big Endian
: ff fe : UTF-16, Little Endian
: ef bb bf : UTF-8
其實名字以 UTF 開頭的編碼還不只這些, 只是這些相對常用而已
其中最常用的是 UTF-8
UTF-16 也不少見
UTF-32 則比較沒什麼看到, 主要還是浪費空間
(一個字佔 4 byte, 如果全是英文則有 3/4 的 byte 是 0,
如果是常用中文則有一半是 0,
然後由於 Unicode 只到 U+10FFFF 的關係, 永遠至少有 1/4 的 byte 是 0)
: Notepad打開分為底下四類:
: ANSI
: Unicode (就是UTF-16, Little Endian?)
: Unicode big endian (就是UTF-16, Big Endian?)
: UTF-8
以上正確
另外要講的是 Notepad 所存成的 Unicode 檔案都會有 BOM
(就是你上面列的那些 byte)
這會造成一些判斷檔案開頭有沒有東西的程式失效或出問題
例如 PHP 程式如果有 BOM 則會先行輸出以致於無法更改 header 資訊
: 記得早期在寫網頁的時候,只用ANSI. XD
: 現在大部分的網頁好像都是用UTF-8.
: 有人用UTF-16或UTF-32來寫網頁的嗎?(什麼情況下會用到?)
UTF-32 如上所說比較沒什麼在用
UTF-8 勝過 UTF-16 的一點是:
對於純英文的文字 (也就是只使用 ASCII < 127 的字元的文字)
它自動就是一個正確的 UTF-8 編碼文字
這才使得 UTF-8 比 UTF-16 來得常見
在其他方面我覺得其實兩者沒什麼差就是
作者: x2006 (?)   2014-03-29 22:14:00
多謝LPH66大大的指點有次看到網頁原始碼寫UTF-16,不知why會這樣?希望有高手解答
作者: s25g5d4 (function(){})()   2014-03-29 23:48:00
他高興設為 UTF-16 阿... 也許他真的用到超出 UTF-8 的字我搞混 UTF 跟 UCS 的意思了...囧UTF-8 可以顯示所有 Unicode 字元 (但是程式支不支援就..)
作者: buganini (霸格尼尼)   2014-03-30 01:57:00
作者: altecjc (嘉誠)   2014-03-30 23:14:00
這篇文太棒了,之前想找都沒找著,謝謝大大分享,大推

Links booklink

Contact Us: admin [ a t ] ucptt.com