Поскольку символы в большинстве случаев в кодировке UCS2 могут быть представлены в виде строки UTF-16 (в UTF-16 символ с кодами больше 0x10000 используется редко), я думаю, что использование Iconv - лучший способ преобразования строк.
Пример кода:
require 'iconv'
ic = Iconv.new 'UTF-8', 'UTF-16'
utf8string = ic.iconv ucs2string