返回   吉米丘上的海盜樂園 > ◎ 吉 米 丘 上 的 天 地 > 軟 體 討 論 區:::...

軟 體 討 論 區:::... 您在使用軟體上面有心得、疑問、或是建議嗎?

回覆
 
主題工具 顯示模式

[轉貼]BIG5碼衝碼的原因
舊 09-12-2005   #1
吉米丘
論壇管理員
領航員
 
吉米丘 的頭像
 
吉米丘 目前離線
註冊日期:
03-01-2002
住址:
吉米丘上的金銀島
文章:
6,123
吉米丘 的聲望功能已被禁用
預設 [轉貼]BIG5碼衝碼的原因

標題: [文件]BIG5 沖碼的原因
時間: Thu Feb 21 13:30:09 2002

BIG5 沖碼的原因
作者:迪倫轉貼  日期:2001/5/20 PM 03:04:27 

這篇文章分析一些BIG5漢字用在文件名上出錯的原因,其原理也適用於程序代碼, 轉貼過來供參考:

哪些中文字不能在 Unix 檔名上使用?

中文檔名上傳後 crazy !!

您有過這種經驗嗎?打好了一個名為「開會資料.doc」的文件,或者是網頁「基金 會簡介.htm」,傳到 FTP 上或網頁空間上時,居然變成了「開愷資料.doc」或「 基金愷簡介.htm」??尤其當 FTP 或網頁空間是 Unix/Linux 主機時。

是的,這是 Unix 沒有考慮中文的問題。不過這樣說並不見得正確和公允。

是誰的問題?!

嚴格公允地說來,應該是「Big 碼」在設計之初,沒有考慮到 Unix 的需要和限制。 更嚴厲一點地說,真要追究責任,應該是「 Big5 碼」的設計者,根本沒有用過Unix 或者不把 Unix 放進眼睛裡,所設計出來的一種嚴重漏洞的中文編碼方式!

特指「Big5 碼」的原因,是因為其他的中文內碼並不見得都會發生這種狀況。也不 是「 Unix 不能容納中文」的問題。Unix 不能容納中文的話,那麼「開」「資」 「料」三個字,為什麼能正常使用?

當然,也有人會說,Unix 既然能容納「開」「資」「料」三個字,而不能順利處理 「會」字,那麼應該是 Unix 要修正,不是中文要修正,或者說中文內碼編錯吧?

這樣說,只能說有 10% 有道理。90% 沒道理的原因,是因為民主時代,如果分不出對錯,就以人數多為準。Big5 內碼使用人數雖多,也是後來的事了,而且人數再多,也沒有使用 Unix 的人多。中文內碼也很多種,並不止 Big5 一種。使用 Unix 的國家很多很多,使用英語的國家很多很多;而使用中文而且使用 Big5 內碼的國家,只有台灣和香港。

如果您「勉強同意」(民主就是比人數多,您的意見和大多數不一樣,您也只能「勉強」同意)上述的觀點。那麼我們下面把 Big5 碼與 Unix 衝突的問題,視為 Big5碼「錯誤」的敘述,您就不會太反應強烈了(拜託!別又寫長篇大論來吵這個問題!我們窮於應付。有興趣請自闢 BBS 討論板開火)

Big5 碼錯在哪裡?

Big 碼錯就錯在,把 0x7C 編到了中文兩 Bytes 的內碼裡面。這個是什麼呢?就是您所熟悉的 Unix / Linux 用做管道(pipe) 的「|」直棒字元。「會」字正夾了一個這個字元在第二個 byte 處。Unix 明明應該收到的是文字,卻莫名其妙來了一個管道符號,以為是什麼管道指令,當然處理時會出錯囉,不止在 FTP 上傳的問題而已!

其實不止含有「會」一個字的檔名會出問題而已吧?如果您的檔案名是「第四次會議記錄.doc」,那麼鐵定也會變成「第北次愷議記錄」!

到底有哪些字有類似情形呢?

到底有哪些字也會這樣出錯呢?我們台灣立尼仕一不做二不休,乾脆把所有的字來個戶口大清查,凡是私藏有 0x7C 字元的,全部列出來示眾!

以下這些字就是無法用在 Unix/Linux 檔名上的 Big5 中文字黑名單,以及他們會化身喬裝出現的名字!

「弋」→「于」
「四」→「北」
「帆」→「囝」
「坑」→「否」
「育」→「灶」
「尚」→「奇」
「泜」→「泣」
「咽」→「冒」
「洱」→「柯」
「迢」→「茁」
「徑」→「宰」
「砝」→「珞」
「院」→「起」
「悴」→「巢」
「琍」→「淪」
「逖」→「訛」
「揉」→「復」
「稅」→「琯」
「閏」→「跛」
「會」→「愷」
「腮」→「筷」
「頌」→「鉤」
「漏」→「榕」
「誡」→「蓓」
「慝」→「嫻」
「罵」→「稻」
「魯」→「震」
「糕」→「甍」
「嚐」→「餛」
「舉」→「縫」
「甕」→「斷」
「牘」→「儳」
「辮」→「寶」
「疊」→「鰭」
「鸛」→「鑰」
「戉」→「殳」
「吜」→「佤」
「芎」→「灺」
「怙」→「岯」
「矹」→「狉」
「峗」→「壴」
「洀」→「柉」
「苶」→「胙」
「恝」→「娕」
「烡」→「浨」
「茦」→「罝」
「唰」→「偫」
「掤」→「惛」
「痎」→「牿」
「虖」→「莤」
「圌」→「傇」
「斮」→「揕」
「琰」→「焥」
「萆」→「萣」
「隇」→「酟」
「搉」→「廆」
「煟」→「溒」
「腶」→「絻」
「輋」→「趌」
「嫟」→「塺」
「漒」→「槂」
「翣」→「粿」
「銔」→「踆」
「憰」→「嬅」
「獡」→「潷」
「蔙」→「蓲」
「鋧」→「醂」
「懁」→「嶱」
「瞣」→「獥」
「褟」→「螒」
「鮐」→「餩」
「瞲」→「燲」
「觲」→「螵」
「鴱」→「駻」
「聵」→「禬」
「鞫」→「鎕」
「矱」→「瀖」
「霬」→「醭」
「礨」→「瀴」
「鶘」→「騶」
「驂」→「鐻」
「驏」→「躚」
「鼶」→「鱌」
「鸓」→「鸐」

您可以看到「育」「院」「稅」「會」「舉」等常用字,都赫然在其中之列!

因此,如果您是在「教育部」、「立法院」、「稅捐處」、「國稅局」、「農委會」、「選舉委員會」等單位工作,而貴單位又買的是 Unix 主機,那麼您的檔案名稱最好不要用中文了。「中研院院士」,會變成「中研起起士」;「教育部第四次會議記錄」,會變成「教灶部第北次愷議記錄」的!

勉強解決的辦法(在 Unix 沒有通令全世界不要再用管道符號之前,或者在 Big5 碼把上述這些字的內碼修改之前,但這都是不太可能的),只好用「台北市電腦公會.doc」這樣的笨拙檔名來應付。

其他還有一群字也有問題!

另外還有一群字,是當初 Big5 編碼時含有 0x5C 字元,也就是含有 \ 這個反斜線,凡是設計過 C 程式的人大概都知道,"功能表" 要寫成 "功\能表" 才行。這是國外的C 語言教科書上都沒有提到的。

檔名中含有這個字元的檔案,會根本傳不上 FTP 。也不會有亂碼。您只會覺得奇怪,為什麼傳上去的檔案總是少了一兩個!?

同樣不幸的字還包括了「許」,含有您「許」字的檔案是上不了 Unix 主機的。同樣還有姓氏「俞」,名字常用字「珮」,以及較少見的姓氏「涂」和「蓋」等等。「餐」廳也不能用。以下依內碼順序全部列出來:

「么」
「功」
「吒」
「吭」
「沔」
「坼」
「歿」
「俞」
「枯」
「苒」
「娉」
「珮」
「豹」
「崤」
「淚」
「許」
「廄」
「琵」
「跚」
「愧」
「稞」
「鈾」
「暝」
「蓋」
「墦」
「穀」
「閱」
「璞」
「餐」
「縷」
「擺」
「黠」
「孀」
「髏」
「躡」
「尐」
「佢」
「汻」
「岤」
「狖」
「垥」
「柦」
「胐」
「娖」
「涂」
「罡」
「偅」
「惝」
「牾」
「莍」
「傜」
「揊」
「焮」
「茻」
「鄃」
「幋」
「滜」
「綅」
「赨」
「塿」
「槙」
「箤」
「踊」
「嫹」
「潿」
「蔌」
「醆」
「嬞」
「獦」
「螏」
「餤」
「燡」
「螰」
「駹」
「礒」
「鎪」
「瀙」
「酀」
「瀵」
「騱」
「酅」
「贕」
「鱋」
「鱭」

其實這也沒什麼困難嘛?了不起我再把檔名改為「許大雄」就好了嘛,反正姓「許」的只有這一種許嘛?

麻煩事還沒完。

以「功」字而言,如果您的檔名「新產品功能說明」改為「新產品功能說明」,會怎麼樣?不會怎麼樣。上傳到 FTP 以後會怎麼樣?

您自己試試看吧!

眉批:難怪市面上會有一整本批評 Big5 碼的專書!(黃大一博士著,「中文字碼」,長松文化出版)

(註:以上著作權屬於台灣立尼仕所有,如欲轉載、節錄,請註明出處,最好 能事先 Email 知會,謝謝!)





__________________


★擇你所愛,愛你所選

想了解更多iPhone的訊息,請前往http://iphone4.tw


  回覆時引用此篇文章
回覆

書籤



主題工具
顯示模式

發文規則
不可以發表新主題
不可以發表回覆
不可以上傳附件
不可以編輯自己的文章

啟用 BB 代碼
論壇啟用 表情符號
論壇啟用 [IMG] 代碼
論壇禁用 HTML 代碼

論壇跳轉



所有時間均為台北時間。現在的時間是 17:46





vBulletin skin developed by: eXtremepixels, Powered By JCMS INTERNATIONAL Co.,Ltd.
Powered by vBulletin® 版本 3.8.3
版權所有 ©2000 - 2024,Jelsoft Enterprises Ltd.
本網站內之文章,版權歸原作者所有,在此發言並無言論免責權,且與本站立場無關,並禁止未授權轉載。