Ruby1.9.2でWindowsのUnicodeテキストファイル UTF-16LE(改行:<CR+LF>)+BOM を
読み書きするにはどうしたらよろしいのでしょうか?

abc<CR+LF>
を読むとバイト列が [255, 254, 97, 0, 98, 0, 99, 0, 13, 0, 10]
となってLFの2バイト目が分断されているようです

それとBOMの適切な処理方法があれば教えてください。
(設定によってBOMを読み飛ばしてくれたりバイトオーダーを設定できたりする機能があれば)

ソース
# coding: utf-8

$stdin.binmode
#$stdout.binmode

$stdin.set_encoding 'utf-16le'
$stdout.set_encoding 'utf-16le'

while row = gets
p row.each_byte.to_a #=> [255, 254, 97, 0, 98, 0, 99, 0, 13, 0, 10]
print '#', row
end


printのところでエラー
xxxx.rb:11:in `write': incomplete "\n" on UTF-16LE (Encoding::InvalidByteSequenceError)