Method: MyMatrix.cp932ize

Defined in:
lib/mymatrix.rb

.cp932ize(str) ⇒ Object

CP932範囲外の文字コードを変換する関数。ruby1.9の正規表現(鬼車)のため、1.8では使えない。



988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
# File 'lib/mymatrix.rb', line 988

def self.cp932ize(str)
	out = str.dup
	cases = [
            #['−', '―'], #MINUS SIGN(U+2212) to FULLWIDTH HYPHEN-MINUS(U+2015)(windows)
            #↑仕様としては上記が正しいが、運用上MINUS SIGN(U+2212) は FULLWIDTH HYPHEN-MINUS(U+FF0D)に変換する
            #キー入力時にMacとWindowsで同じ文字コードとなることが望ましいため。
            
            ['',''], #WAVE DASH (U+301C) to FULLWIDTH TILDE(U+FF5E)(windows)
            ['',''], #DOUBLE VERTICAL LINE (U+2016, "‖") を PARALLEL TO (U+2225, "∥") に
            ['', ''], #EM DASH (U+2014, "—") を HORIZONTAL BAR (U+2015, "―") に
            #以下、キー入力を想定した変換。
            ['', ''], #MacのハイフンF7(google ime)→Windows(googleime):同じ
            ['', ''], #MacのハイフンF8(google ime)→Windows(googleime):同じ
            ['', ''], #MacのハイフンF9[−](google ime)→Windows[-](googleime):違う。MINUS SIGN(U+2212) to FULLWIDTH HYPHEN-MINUS(U+FF0D)
            ['-', '-'], #MacのハイフンF10(google ime)→Windows(googleime):同じ
            #ユニコード固有文字:ノーブレークスペース
            ['[\u00A0]', ' '],
            #yen
            ['[\u00A5]', ''],
            # éとè:eの上に´と`
            ['[\u00E9]', 'e'],['[\u00E8]', 'e'],
            # todo:よく使う文字(http://www.geocities.jp/laut6/mojibakesetumei/mojibakesetumei2.html より)

            #spaces
            ['[\u2000]', ' '],['[\u2001]', ' '],['[\u2002]', ' '],['[\u2003]', ' '],['[\u2004]', ' '],['[\u2005]', ' '],['[\u2006]', ' '],['[\u2007]', ' '],['[\u2008]', ' '],['[\u2009]', ' '],['[\u200A]', ' '],['[\u205F]', ' '],
            
            #Japanese Addresses
            ['鵢崎', 'みさ崎'],
            ['', ''],
            ['', '']

           ]
   
   
	cases.each do |c|
		out.gsub!(/#{c[0]}/, c[1])
	end
	return out
end