目的 Goal
這篇記錄自己在Ruby on Rails使用的一些有用的程式片段code snippet,轉換半形英文數字常用符號為全形,或者轉換全形英文數字常用符號為半形。
前言 Background
先前協助長庚大學建構資料庫專案時,遇到原有儲存於Excel xlsx檔案內的資訊有半形文字與全形文字,所以寫了一段簡單的method來轉換
程式片段 Snippet Content
因為專案開發是使用Ruby on Rails,所以以下方法適用於Ruby,不過裡面全形與半形文字可以套用於任一個具有tr (translate)的語言。
如果要把全形轉換成半形文字:
def self.to_half(str) full = " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~" half = " !\"\#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~" str.tr(full, half) end
如果要把半形轉換成全形文字,可以調換一下順序:
def self.to_full(str) full = " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~" half = " !\"\#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~" str.tr(half, full) end