《編碼》
你有個小盒子,裡面裝了 256 枚印章,每一枚都有編號。你參加了學校的「印章密碼愛好者興趣小組」,裡面有個外國來的小女孩,經常跟你玩乙個遊戲,比如你問「今年暑假你去了**?」她回答說「78,89,67」。因為你們都如此熟悉自己的印章,你一下子就明白了她說的是「nyc」。
「那你出生在**呢?」,你問。
她遲疑了一下,想了想說,「77,195,188,110,99,104,101,110」。
你愣住了。一盒印章有 256 個,但是大家平時基本只用前 128 個。你知道 77 是 m,可 195 是什麼?你一時想不起來,只好慚愧地拿出隨身攜帶的那盒印章,拿出 195 和 188 號按在紙上:
所以小女孩說的是「mã¼nchen」。可這是啥意思呢?ã 又 ¼ 月台?你疑惑地望著小姑娘,小姑娘也疑惑地望著你。只見她也轉身拿出乙個盒子開啟來——你頓時傻了眼——裡面密密麻麻地居然排了上千個小印章!而且有好多層!小姑娘熟練地翻到某一層,俏生生用指甲挑出一枚小印章來,在紙上印下乙個符號:
然後把印章遞給你。你拿過來一看,好傢伙,上面居然刻著「c3 bc」,另有一行小字「195 188」。所以……對於她來說,195 188 就代表能印出「ü」的印章了……可是印象裡你的盒子裡也有「ü」呀,於是你把盒子裡的第 252 號印章拿出來給她看,正是乙個「ü」。就在你們面面相覷茫然無措快要哭出來的時候,興趣小組的輔導員大叔走過來,親切地說:「小朋友們,別難過,要繼續相信愛情」,然後從牆上的書架裡拿下一本封面上印著《iconv》的大書,熟練地翻到「iso8859」這一章,指著「00fcü:252」條目裡後面的那個數字說:「你們看!iso8859 的 ü 就是 252 號!」;然後他又翻到「utf8」這一章,指著「00fcü:c3 bc」說:「而 utf8 的 ü 就是十六進製制 c3,bc,也就是十進位制的 195,188!」。
大叔合上大書,把你的印章盒子翻過來,指給你看背後印著的一行小字:「encoded in iso8859」,而那個外國小女孩的盒子背面則印著「encoded in utf8」。「我只能幫你到這裡啦,小夥子」,大叔看著你們似懂非懂的樣子,笑著說。
雖然你不太明白為什麼要有這樣一本書,為什麼不能每個盒子都裝一樣的東西,但是從此之後,如果碰到小女孩說出不認識的數字,你們就會一起去查閱那本《iconv》,從此過上了兩小有猜的幸福生活。
——————外一篇——————
《字型》
作為乙個印章收集愛好者,你一生積攢了很多只盒子,每個盒子裡面有很多帶編號的小孔,每個小孔裡面插著乙隻印章。有個盒子上面寫著「arial」,拿出裡面編號為 65 的印章,印在紙上是這樣的:
很多其他盒子裡的 65 號印章,圖案看起來都很相似,比如「brush script」盒子裡面的 65 號:
直到有一天你遇到有個盒子上面寫著「webdings」,裡面編號為 65 的印章,印在紙上居然是這樣的:
……於是你想起小時候跟你一起玩的那個小姑娘,用顫抖的雙手拿出 78,89,67 三枚印章,按在紙上:
編碼和字型的關係是怎樣的?
「00fc ü:252」 和 「00fc ü:c3 bc」裡面的「00fc」可能會是什麼?
iconv 是做什麼用的?
思考題答案:
字型描述的是字元所具備的外形,編碼則是對於某個編號應該代表哪個字元而產生的約定。字型會以某種編碼排列,但是編碼和具體的某字型之間沒有必然聯絡,就好比 78 可以是字母 n,卻也可以是乙隻眼睛。
把全世界所有可能出現的符號蒐集到一起列成乙個表,給裡面的每個字元編列乙個獨一無二的號碼,這個編碼計畫叫做 unicode。而那些號碼則叫做(unicode 的)code point。00fc 就是 ü 在 unicode 編碼計畫裡的 code point。
某乙個特定字元在 unicode 裡的 code point 可以通過 iconv 找到對應的 utf8 或者 iso8859 的 code point,所以乙個字元在 iso8859 裡的 code point 也就可以通過 iconv 找到對應的 utf8 的 code point。換句話說,iconv 可以轉換編碼,但是具體這個編碼用什麼字型顯示,不關 iconv 的事情。
謝邀。
字元編碼及字型顯示
計算機的所有資訊都以二進位制表示 二進位制數字 如 程式中puts hello 你好 輸出字串資訊,字串在計算機裡面儲存為二進位制數值48 65 6c 6c 57 c4e3 bac3,計算機中傳輸的只是數字,顯示為hello 你好。字元顯示 數字 代表什麼 顯示為 什麼 字元編碼字型檔案 字元編碼 ...
字元和字元編碼
字符集只是乙個規則集合的名字,對於乙個字符集,要正確編碼轉碼乙個字元需要三個關鍵元素 在計算機內部,所有的資訊最終被表示為乙個二進位制的字串。每乙個二進位制位 bit 有0和1兩種狀態,因此八個二進位制位 即乙個位元組 就可以組合出256種狀態。也就是說乙個位元組可以用來表示256種不同的狀態。上世...
字型編碼介紹
ascii碼 ascii碼一共規定了128個字元的編碼,對英語字元與二進位制位之間的關係,做了統一規定。這128個符號 包括32個不能列印出來的控制符號 只占用了乙個位元組的後面7位,最前面的1位統一規定為0。非ascii編碼 不同的國家有不同的字母,哪怕都使用256個符號的編碼方式,代表的字母卻不...