Re: 想請教一個編碼的問題..
你要知道, 在電腦裡面的東西都是 0 (2進位) 或 1 (2進位).
都不是給人看的東西, 要人去定義說什麼是什麼,
那這些 0101 (2進位) 的東西才會有意義.
好, 問題來了, 今天我自己定義一套 1~26 (10進位) 是 A~Z,
別人要怎麼知道說我儲存的 000111101010 (2進位) 是什麼鬼東西?
所以我要把編碼明確的寫好 000001 (2進位) 是什麼, 000010 (2進位) 是什麼.
然後還要給這個編碼表一個名字, 可能不會是我給的.
別人再運用這些規則就可以把這些 000001 (2進位) 解讀成 A 顯示在螢幕上.
如果這個部分你無法理解, 請用任何可以顯示 16 進位的編輯器 (例:UltraEdit)
去用 16 進位模式看看文字原始的面貌.
好了, 那有了 A~Z, 就夠了嗎?
日本有自己的 50 音 (JIS), 韓國有圈圈直線, 對岸是簡體字, 我們是繁體字.
這些難道當初發明電腦的人會去幫你編好那些碼嗎? 不可能嘛.
所以大家就會自行去定義 0101
來把自己國家特殊語言編碼描述出來.
不然電腦只會顯示英文有意義嗎? 我只打英文給你看你看的懂嗎?
但是沒有一個共通的協定, 就會撞嘛.
我定義 1~26 (10進位) 是 A~Z, 人家 ASCII 卻說 065~090 (10進位) 是 A~Z
那預設用 ASCII 來讀我自己亂寫的編碼過檔案, 只會出現一堆看不懂的東西而已
所以後來才會有 Unicode 或 UTF-8 之類的東西..
現在大家都學乖了, 我要讓你看懂, 我們就先講好
我在檔案開頭說這是什麼檔案, text/html 代表的就是一般的平文,
不是什麼圖片或程式, 那個編碼又是不一樣的東西.
然後就算是平文, 也不是所有編碼都一樣, 我還是要講他是 ASCII, Big5..etc.
那你來讀我的檔案, 你先看過檔案開頭, 你就不會亂解一通.
光中文就可以用 Unicode, CNS11634 (大概吧?), Big-5...etc 等等去解讀.
那用不同的編碼去解讀通常會有不同的結果.
總之, 在電腦裡面的都是 0101 (2進位), 要看懂就是要定義他是什麼.
編碼表就像字典檔一樣, 可以把那些 0101 (2進位) 變成文字.
但是字典也有英文字典德文字典法文字典...etc
所以翻回來的結果自然也會不同.
※ 引述《johnkuokuo@kkcity.com.tw ( )》之銘言:
: 有一個問題一直困擾我很久,想請問一下各位程式的高手
: 最近在學jsp網頁的時候,常常會遇到編碼的問題
: 比如說..<%@page contentType="text/html;charset=Big5"%>
: 這一行好了..
: 雖然書上有解釋,這一行的內容是啥
: 大概是這樣說的,此jsp網頁的內容設定為text/html格式,編碼方式為中文big5碼
: 可是我還是有看沒董..
: 還有類似像這樣的敘述...request.setCharacterEncoding("big5");
: 我也是有看沒董..
: 我對jsp的一些語法,使用方式..包括連接資料庫的概念都具備了..
: 可是獨獨對編碼的方式,還有我看網頁上很多人都有發表一些有關於
: 處理資料庫中文輸出變成亂碼的文章...
: 還是有看沒董..
: 因為我並非本科系出身..對程式語言的編碼,以及什麼是編碼也好像一知半董
: 有沒有人可以解釋一下...有關於
: 1.什麼是編碼
: 2.為什麼需要編碼
: 3.<%@page contentType="text/html;charset=Big5"%>
: request.setCharacterEncoding("big5");這兩行的意義到底是啥
: 4.為啥部處理編碼問題,會有中文變亂碼的情形
: 謝謝..
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.64.225.194
討論串 (同標題文章)