Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 裂缝中的虫子?_Ruby_Json_Yaml - Fatal编程技术网

Ruby 裂缝中的虫子?

Ruby 裂缝中的虫子?,ruby,json,yaml,Ruby,Json,Yaml,我正在使用Rubyoverflow gem,它允许使用Ruby代码中的Stackoverflow API。我注意到有时我会收到错误信息: Invalid JSON string 我试着分析代码,发现当Stackoverflow的答案包含非ascii字符时发生了错误 Rubyoverflow使用HttpParty gem,HttpParty gem使用Crack gem解析JSON文件 module Crack class JSON def self.parse(json)

我正在使用Rubyoverflow gem,它允许使用Ruby代码中的Stackoverflow API。我注意到有时我会收到错误信息:

Invalid JSON string
我试着分析代码,发现当Stackoverflow的答案包含非ascii字符时发生了错误

Rubyoverflow使用HttpParty gem,HttpParty gem使用Crack gem解析JSON文件

module Crack
  class JSON
    def self.parse(json)
      json =  json.delete!("^\u{0000}-\u{007F}")  # here is my fix
      YAML.load(unescape(convert_json_to_yaml(json)))
    rescue ArgumentError => e
      raise ParseError, "Invalid JSON string"
    end
我已经添加了一行代码来删除JSON中的所有非ascii字符,错误已经修复

现在我想了解谁是我需要报告此错误的人

是否可以在JSON文档中包含非ascii字符? 是否可以在YAML文档中包含非ascii字符? 如果标准允许在JSON和YAML中包含非ascii字符->YAML类中的错误。是这样吗?谁是这个类的作者,修复这个bug的最佳方法是什么?
JSON和YAML文档应该根据HTTP头中给出的字符集进行解码,然后对生成的文档进行适当的解析。JSON和YAML都有一种用ASCII表示非ASCII字符的方法,但它们都不要求使用完整编码。

快速搜索显示。如果它真的是一个bug,你会在那里提交bug报告。我不认为是这样,但我认为问题在于你不理解规范,或者不知道如何处理Unicode。我希望修改这个问题,因为我想知道我需要报告这个错误的人是谁,这不是一个很好的问题,所以在这一点上。在这个例子中没有我的代码。Stackoverflow发布JSON,Rubyoverflow使用此JSON,HTTParty获取此JSON,Crack将JSON转换为YAML,YAML lib加载此YAML。问题是谁是错误的原因。你为什么在Rubyoverflow中确定原因?您确定Stackoverflow提供了正确的JSON吗?你确定所有其他gem和库都正常工作吗?@铁皮人:确保链接到正确的github项目;。这是原始项目的一个分支,没有额外的commits@phsr,嗯,既然你没有链接到正确的…:-