卒論やらポルトガル語やらで、Cellができない。。
早く片付けてまたCell始めます。
というわけで今日は、Rubyでウムラウトを実体参照に変換するだけのプログラムです。実体参照を打つのが面倒だったため、同じことで誰かが苦しまないように書いておきます。
module Umlaut
UMLAUT_TRANSLATE_TABLE = %w(À Á Â Ã Ä Å Æ Ç È É Ê Ë
Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú
Û Ü Ý Þ ß à á â ã ä å æ ç è é
ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø
ù ú û ü ý þ ÿ)
def umlaut2entity
ret = ""
self.each_byte do |c|
(ret += c.chr and next) if c < 0xc0
ret += UMLAUT_TRANSLATE_TABLE[c - 0xc0]
end
ret
end
end
String.class_eval do
include Umlaut
end
if $0 == __FILE__
puts "Voc\xea \xe8 linda!".umlaut2entity
end
実行結果
% ruby test2.rb
Você è linda!
%
これでブラジル人とつきあうことになっても大丈夫です。
参考
http://www.pref.shizuoka.jp/kikaku/ki-28/bom_dia/lesson10.htm