我有一个API控制器,它接收有关媒体文件路径和id3标签的信息,并使用PostgreSQL / Rails将它们保存到Active Record实例。
但有时用户会发送如下字符串:
"genre"=>"Hip-Hop\u0000Hip-Hop/Rap"
和Rails / Postgres在尝试坚持save
时并不高兴:
An ArgumentError occurred in internals#receive:
string contains null byte
activerecord (3.2.21) lib/active_record/connection_adapters/postgresql_adapter.rb:1172:in `send_query_prepared'
如何在Ruby中清除此字符串以完全删除空字节?
答案 0 :(得分:18)
gsub
上的String
方法可能是合适的。你可以string.gsub("\u0000", '')
来摆脱它们。