Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

"string contains null byte (ArgumentError)"と出たら、ヌル文字が入ってるので消す

たとえば、シリアルポートから数値をゲットしようとすると

hoge.rb:32:in `system': string contains null byte (ArgumentError)

てな感じでエラーを吐いて止まる事があります。
ヌル文字は"/000"とにして認識されており、表示はされませんが文字列に格納されています。
これを消すには

str.delete(/¥000/)

と、String#deteleメソッドを使ってあげればよいです。