这是我的test file
这是我的完整代码(github.com/roroco/ro_article/tree/string-contains-null-byte)
我得到" ArgumentError:字符串包含空字节"在以下代码运行时:
在红宝石方面:
get_article(File.read("test_file"))
在c方面:
VALUE get_article(VALUE self, VALUE html) {
str html2 = StringValueCStr(html);
test file是如此之大,如何在此文件中找到空字节?以及如何使StringValueCStr适用于所有字符串,即使它包含" null byte"
答案 0 :(得分:1)
当我使用以下代码时:
body = File.read("test_file")
result = body.inspect
我的“结果”包含“\ u0000”(我的编码是utf8),所以解决方案是
body.gsub(%r{\u0000}, "")
在ruby side或c side执行