2016-01-21 1 views
0

вот мой test fileArgumentError: строка содержит нулевые байты при использовании StringValueCStr

вот мой полный код (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 работы для всех строки даже содержит «нулевые байты»

ответ

1

, когда я использую следующий код:

body = File.read("test_file") 
result = body.inspect 

У меня есть «результат» содержит «\ u0000» (моя кодировка utf8), поэтому решение

body.gsub(%r{\u0000}, "") 

сделать это в рубиновой боковой стороне или с