0

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

所以我使用gsub:

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

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

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

有什么建议么?

我还尝试对 xmlBody 使用 force_encoding("UTF-8") 和 xmlBody.delete!(0x0) 以得到相同的结果。

4

1 回答 1

0

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

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

于 2015-09-02T01:30:17.637 回答