Rubyの絵文字対応

今日Ruby絵文字エンコーディングに対応したというので、Asakusa.rbな場でやってみた。

Snow LeopardというかMacPortsでは、最新パッチ取込済みの開発版が落ちてくると限らないので、svngithub.com/ruby/rubyあたりが吉の模様。githubsvnから7時間おきにミラーしてるとかで、かなり最新。

% cd /Users/hoge/Documents/
% git clone git://github.com/ruby/ruby.git
% autoconf
% ./configure --prefix=/Users/hoge/Documents/ruby
% make -j2
% make install
% ./ruby -ve 'puts "\xF8\x9F".force_encoding("SJIS-DoCoMo").encode("UTF-8")'
ruby 1.9.2dev (2010-03-09) [x86_64-darwin10.2.0]
☀
% ./ruby -e 'p Encoding.name_list'
["ASCII-8BIT", "UTF-8", "US-ASCII", "Big5", "Big5-HKSCS",
"Big5-UAO", "CP949", "Emacs-Mule", "EUC-JP", "EUC-KR", "EUC-TW",
"GB18030", "GBK", "ISO-8859-1", "ISO-8859-2", "ISO-8859-3",
"ISO-8859-4", "ISO-8859-5", "ISO-8859-6", "ISO-8859-7",
"ISO-8859-8", "ISO-8859-9", "ISO-8859-10", "ISO-8859-11",
"ISO-8859-13", "ISO-8859-14", "ISO-8859-15", "ISO-8859-16",
"KOI8-R", "KOI8-U", "Shift_JIS", "UTF-16BE", "UTF-16LE",
"UTF-32BE", "UTF-32LE", "Windows-1251", "BINARY", "IBM437",
"CP437", "IBM737", "CP737", "IBM775", "CP775", "CP850", "IBM850",
"IBM852", "CP852", "IBM855", "CP855", "IBM857", "CP857", "IBM860",
"CP860", "IBM861", "CP861", "IBM862", "CP862", "IBM863", "CP863",
"IBM864", "CP864", "IBM865", "CP865", "IBM866", "CP866", "IBM869",
"CP869", "Windows-1258", "CP1258", "GB1988", "macCentEuro",
"macCroatian", "macCyrillic", "macGreek", "macIceland",
"macRoman", "macRomania", "macThai", "macTurkish", "macUkraine",
"CP950", "CP951", "stateless-ISO-2022-JP", "eucJP", "eucJP-ms",
"euc-jp-ms", "CP51932", "eucKR", "eucTW", "GB2312", "EUC-CN",
"eucCN", "GB12345", "CP936", "ISO-2022-JP", "ISO2022-JP",
"ISO-2022-JP-2", "ISO2022-JP2", "CP50221", "ISO8859-1",
"Windows-1252", "CP1252", "ISO8859-2", "Windows-1250", "CP1250",
"ISO8859-3", "ISO8859-4", "ISO8859-5", "ISO8859-6",
"Windows-1256", "CP1256", "ISO8859-7", "Windows-1253", "CP1253",
"ISO8859-8", "Windows-1255", "CP1255", "ISO8859-9",
"Windows-1254", "CP1254", "ISO8859-10", "ISO8859-11", "TIS-620",
"Windows-874", "CP874", "ISO8859-13", "Windows-1257", "CP1257",
"ISO8859-14", "ISO8859-15", "ISO8859-16", "CP878", "SJIS",
"Windows-31J", "CP932", "csWindows31J", "MacJapanese", "MacJapan",
"ASCII", "ANSI_X3.4-1968", "646", "UTF-7", "CP65000", "CP65001",
"UTF8-MAC", "UTF-8-MAC", "UCS-2BE", "UCS-4BE", "UCS-4LE",
"CP1251", "UTF8-DoCoMo", "SJIS-DoCoMo", "UTF8-KDDI", "SJIS-KDDI",
"ISO-2022-JP-KDDI", "stateless-ISO-2022-JP-KDDI", "UTF8-SoftBank",
"SJIS-SoftBank", "locale", "external", "filesystem", "internal"]
% cd ..
% rm -fr ruby/

うご。そしてまたはてなではUnicode絵文字が実体参照に変換されてしまう問題が。

捨てディレクトリを作って試せば、入れて消すだけ。逆にmake installせずに、makeするだけだと、$LOAD_PATHの設定がおかしかったりして、うまく動かなかった。そういうもんなのか。

いろいろバージョンの問題が面倒なRubyでは、rvm(Ruby Version Manager)が便利らしい。rvmはrvmで面倒そうと思ったけど、動いている現物を見てみたら、やっぱり便利そうな気もしてきた。