【EC】跨國程式語言編譯

27 5月, 2018

【EC】跨國程式語言編譯


最近有需要改一份泡菜的CODE,
原始碼是韓國人寫的
理所當然進了EC,有韓文的東西全都變成豆腐塊
並且在編譯時也造成錯誤
後來總算是找到一個算是正規的方式來解決
通常這種問題,十之八九都是跟編碼有關,
下面記錄了算是稍微正規的流程來解決


(一) 設定IDE (EC)的編碼為「UTF8」

UTF8是一種統一碼(有人也稱為萬國碼)
由於程式可能會有不同語言交雜,
所以將EC的設定調整為UTF8
在專案點選右鍵,點選「屬性」=> Resouce => Text file encodeing
調整為UTF8



(二) 確定來源檔案為UTF8格式

第一點做完以後,
接下來就要確認手邊來源的程式碼,
是否是UTF8格式(通常不是...)

這時候最好先將來源的程式碼先轉成UTF8格式,
之後進到EC裡面也才能正常讀取

轉換UTF8有個要點,要轉換成「UTF-8(無BOM)」
至於什麼是BOM

"危機百科"已經說得很明白了,
簡單來說,就是在UTF8開頭多增加了幾個空間
用來紀錄這個檔案是用哪種endian的方式讀取(big endian  or small endian)

正常的UTF8檔案最好都是用無BOM的方式,解析上比較不會有問題


至於轉換的方式跟工具有很多種
我此次的方式是用「NotePad」
人工手動一個檔案一個檔案轉,很笨沒錯....

因為還沒找到一個批次的方法能夠正確的將檔案轉成UTF8無BOM
這還牽扯到 要先知道韓方原始碼是用什麼編碼去編

但是因為Notepad都幫你解決了,能夠正確無誤的轉出
只是一次轉一個....
但是由於此次檔案不多,所以就先土法煉鋼一個一個轉



(三) 下載程序所需要的字體

做完了第一點跟第二點。

我們就能確定IDE 跟 來源檔案都是UTF8

這時候此時EC上面一定還是一堆惱人的「豆腐塊亂碼」

那是因為主機沒有設置可以去識別「韓文」的字型


後來估狗了一下,找到一個很不錯的解法

原來GOOGLE跟ADOBE合作,有推出一個字型
能夠兼容跨系統,解決語言無法正確顯的問題
(中文,韓文,日文...都不會亂碼了)

按照上述文章說明
(2)搜尋「Noto Serif CJK TC」繁體中文
(3)下載
(4)將OTC丟到windows的font資料夾底下安裝

(四) 正常顯示及編譯


由於檔案格式跟EC的編碼都是UTF8
所以設置完字型後,基本上原本的豆腐塊都消失了

檔案也可以同時共存多國語系
只是最後在Build的時候,也記得compile的encode要設置為UTF就行了



張貼留言