英文數字常用符號半形文字轉全形文字

目的 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

參考資料 Reference

  1. PHP版本

相關文章