2009年2月25日 星期三

GIS軟體空間屬性資料編碼問題

ESRI shape檔案儲存圖資屬性資料為dBASE之DBF格式,目前台灣通用之DBF檔案支援ANSI字集及中文Big5(大五碼)字集;Big5是1984年由中華民國財團法人資訊工業策進會為五大中文套裝軟體所設計的中文內碼,大約有13,060字,很多日常用字被視為異體字而未收錄,因此時常出現無法輸入的中文字,形成缺字問題。例如台灣教育部視「着」為「著」的異體字,故Big5沒有收錄「着」字;另外,像常見的人名用字:「堃」(前中華民國前行政院長游錫堃)、「煊」(中華民國監察院院長、前財政部長王建煊)、「栢」(歌手張栢芝)、「喆」(歌手陶喆)等,也沒有收錄到Big5之中;至於早期地圖上的地名或現今仍使用的地名,也常常有這樣的問題,如打「猫」(現今的嘉義)、社「藔」(現今的和平島),澎湖縣湖西鄉「菓」葉村(Wiki)。

相較於Big5,Unicode(統一碼、萬國碼、單一碼、標準萬國碼)包含了超過十萬個字元的編碼;除了支援較多中文字元外,Unicode更有正體中文、簡體中文、日文…等字元的支援。台灣的地名受到外來移民或殖民影響,所以在台灣的地理資料中,考慮多國語言的能力就相當重要,例如要處理日據時期台灣堡圖,就得同時支援中文及日文。使用Unicode為為基礎的資料存儲方式就格外重要。若Unicode中還未支援該中文字,即可以使用中央研究院資訊科學研究所發展之構字式來解決中文缺字之問題。目前亦有DBF檔案支援Unicode的解決方案,但是Unicode之DBF檔案許多軟體都尚未支援,實際在ArcGIS使用上還是會有亂碼問題,種種不方便使用的因素下,Unicode之DBF檔案沒有成為一個通用格案格式,也未能有效地解決多國語系的問題。

接下來就來看看ArcGIS、SuperGIS及QGIS處理不同編碼的處理方式及效果

ArcGIS

在中文Windows中使用ArcGIS9.2如果匯入utf-8的shpe+dbf,則結果如下圖,屬性資料都是亂碼。

2009-02-19_140905

若要ArcGIS若要支援不同的屬性資料編碼要如何作呢?依ESRI的辦法,網址: http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&d=21106

以上網址的意思就是–您得改系統的登錄檔,而且每次切換不同的編碼,就要改一次Windows系統的登錄檔再重新開啟ArcGIS。因為改Windows系統的登錄檔是屬於高風險的行為,可能會導致Windows無法使用,所以我也不作測試,也建議大家別作這嘗試。

 

SuperGIS

是台灣崧旭公司開發的GIS軟體,經測試也無法使用不同編碼的圖資。在簡體中文的Windows中開啟正體中文的圖資會產生亂碼,如下圖。

image003

不過使用微軟的AppLocale可以解決此問題,也就是使用不同編碼的圖資,都要用AppLocale建好對應編碼的捷徑。

image035 

 

QGIS

QGIS處理的方法,是在加入向量圖層時,即可以選擇編碼的種類,之後就可以正常開啟。目前QGIS支援正體中文(BIG5-HKSCS)、簡體中文(GB2312)、日文…等的編碼。當然最重要的Unicode(UTF-8)也支援。所以使用QGIS您可以減少缺字問題的發生,且可以支援多國語言的圖資。

2009-02-17_165112

最後還要提醒大家,使用utf-8編碼的shape圖資可以解決缺字及多國語言問題,但是dbf本身還是一個古老的檔案格,所以其欄位的限制還是很多。建議大家改用空間資料庫,作法及好處可以參考這篇