Unicode,難搞

最近仍是要處理到網頁文字抓取與轉換的問題。基本就會碰到文字編碼與檔案編碼的事情。隱約覺得Erlang在字碼這方面還不健全–我的意思是說,普通工程用的程式語言與軟體工具,該弄簡單的部份都弄簡單了,所以不會遇到多大問題,但 Erlang 這方面軟體工程師則還需要好好打基礎。

本來我以為,基本只要用 xmerl 模組系列 (xmerl_scan, xmerl_xs) 就夠了,但是,遇到一個 Big5 編碼的網頁,不管是轉成 UTF-8 編碼或是原編碼,在讀入的時候都遇到基本字元格式問題。假如用 regexp 模組,好像又不太好做,而且弄個含有中文比對樣式字串,又遇到 “參數問題" ,問題似乎也來自於字碼。另外, xmerl.hrl 檔案無法含進來,顯然是我對 Ubuntu-Erlang 架構不夠熟。

查查 erlang.org 網站上的手冊,我找到有幾個模組是所謂 Unicode-aware 的。像 regular expression 方面,有 re 模組可以支援 Unicode 。例如,只要 re:complie(“中文樣式", [unicode]) 這樣用下去,利用控制參數啟用 Unicode 識別的機能,也能把含有中文字的樣式文字編譯完成。

另外有看到網路論壇的小道消息,有人說處理 Unicode 字碼,最好是用到 binary 資料而不只是用普通 string 資料,比較能做成功並且取得電腦處理效率。

廣告

About 黃耀賢 (Yau-Hsien Huang)

熱愛 Erlang ,並且有相關工作經驗。喜歡程式語言。喜歡邏輯。目前用 Python 工作。
本篇發表於 Erlang, Problem。將永久鏈結加入書籤。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s