Ruby: バイトから文字列を作成する
概要
バイト値から文字列を構築したいと考えています。
現在使用しているもの:
str = " "
str[0] = byte
これはうまく機能するように見えますが、醜いし、1 文字を超える文字列にあまり拡張性がないと思います。
何か案が?
解決策
上記の方法よりもはるかに単純なアプローチがあります: Array#pack:
>> [65,66,67,68,69].pack('c*')
=> "ABCDE"
matz Ruby ではパックは c で実装されていると思います。そのため、非常に大きな配列でもかなり高速になるでしょう。
また、pack は「U*」テンプレートを使用して UTF-8 を正しく処理できます。