私はテストしていませんが、文字エンコード ライブラリ (現在はアルファ版) は、UTF-8 などを処理するメソッドを String クラスに追加します。RubyForge のページはこちらです。Ruby 1.8用に設計されています。
ただ私の経験上、Ruby 1.8 を使ってデータベースにデータを UTF-8 で保存する場合、HTTP ヘッダーの文字エンコーディングが UTF-8 であれば Ruby は邪魔になりません。文字列を操作できない場合がありますが、何も壊れません。例:
file.txt:
¡Hola! ¿Como estás? Leí el artículo. ¡Fue muy excellente!
私の貧しいスペイン語を許してください。これは私が思いついた Unicode の最良の例でした。
in irb:
str = File.read("file.txt")
=> "\302\241Hola! \302\277Como est\303\241s? Le\303\255 el art\303\255culo. \302\241Fue muy excellente!\n"
str += "Foo is equal to bar."
=> "\302\241Hola! \302\277Como est\303\241s? Le\303\255 el art\303\255culo. \302\241Fue muy excellente!\nFoo is equal to bar."
str = " " + str + " "
=> " \302\241Hola! \302\277Como est\303\241s? Le\303\255 el art\303\255culo. \302\241Fue muy excellente!\nFoo is equal to bar. "
str.strip
=> "\302\241Hola! \302\277Como est\303\241s? Le\303\255 el art\303\255culo. \302\241Fue muy excellente!\nFoo is equal to bar."
基本的に、UTF-8 は奇数文字を含む ASCII として扱われます。コード ポイントが順不同の場合、辞書順にソートされません。ただし、コード ポイントでソートされます。例:
"\302" <=> "\301"
=> -1
とにかく、Rails アプリのデータをどの程度操作する予定ですか? ほとんどの並べ替えなどは通常、データベース エンジンによって行われます。