如何从Ruby中的文件中间删除char 0x0?

时间:2015-09-01 14:47:03

标签: ruby unicode string-substitution

我正在尝试剥离我在我的一个文件中找到的0x0字符,当我发现xml解析器被窒息时。

所以我使用gsub:

xmlBody.gsub!(/\u0000/i,'')

替换它。 xml解析器现在已满足。然后保存xml文件(使用UTF-8编码)。

但是,当我在Sublime文本编辑器中重新打开文件时,Sublime会崩溃。当我使用另一个编辑器(没有崩溃),并将文件的xml内容复制/粘贴到xml验证器中时,验证器说char 0x0无效。似乎gsub没有真的删除该角色。

有什么建议吗?

我也尝试过使用force_encoding(“UTF-8”)作为xmlBody,xmlBody.delete!(0x0)使用相同的结果。

1 个答案:

答案 0 :(得分:0)

xml实际上包含文件内容。我删除了其他字符,但它们不在文件中。但是0x0不断回来。所以,我尝试在xml解析中删除它们(因此它将正确解析)并再次在文件写入上删除。它终于消失了。

output.write(utf8_encoded_content.gsub!(/\u0000/i, '')) output.close