ruby - 757: 意外的标记在 'ï»Â¿{ (JSON::ParserError)

标签 ruby

我在运行从 JSON 文件生成翻译后的 HTML 文件的 Ruby 脚本时收到 ParserError。 JSON 文件的编码是 ISO-8859-1,但是当我运行 ruby​​ 代码时,我得到以下信息:

:marker=>true}
C:/Ruby200/lib/ruby/2.0.0/json/common.rb:155:in `parse': 757: unexpected token a
t '{ (JSON::ParserError)
    "de_DE": {
        "1": "HERBST 2013",
        "2": "STILSICHER",
                "3": "Klassisch geschnittene Anzüge",
                "4": "PERFEKT KOMBINIERT",
                "5": "Business hemden mit klasse",
                "6": "HERBST 2013",
                "7": "CASUAL BIS COCKTAIL",
                "8": "Vielseitige Kleider",
                "9": "SPORTIV BIS ELEGANT",
                "10": "Mäntel mit Anspruch",
                "11": "ELEGANZ NACH MASS",
                "12": "Unverwechselbare",
                "13": "PASSGENAU",
                "14": "Perfekt geschnittene Blazer"
    },
    "en_GB": {
        "1": "FALL 2013",
        "2": "PURE STYLE",
...............

是否出于某种原因更改了外来字符?

在我的 ruby​​ 脚本中:

translation_hash = JSON.parse(File.read('translation_master.json').force_encoding("ISO-8859-1").encode("utf-8", replace: nil))

http://rubyfiddle.com/riddles/d17fd

这里是json文件:

http://alexanderlloyd.info/json/translation_master.json

最佳答案

您正在以 UTF8 格式读取文件吗?除非另有说明,否则 Ruby 1.9 将假定文件是 UTF-8。

JSON.parse open("input.json", "r:iso-8859-1:utf-8").read

这将指定文件包含 ISO-8859-1 编码,然后在读取时将其转码为 UTF-8。

如果你能提供一个测试文件,可能会更容易帮助调试。

关于ruby - 757: 意外的标记在 'ï»Â¿{ (JSON::ParserError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17581005/

相关文章:

ruby-on-rails - Ruby on Rails 控制台在加载时挂起

ruby - 在 Ruby 上评估 javascript

ruby - 使用 ruby​​ 获取自日期 y 以来用户 x 的所有推文?

ruby-on-rails - 如何将参数传递给 LEFT JOIN?

ruby - 为什么我不能从 AWS 访问这个 url,但我可以从我的本地机器访问?

ruby 正则表达式 : extract a list of urls from a string

ruby - rails ransack gem 搜索 json 列

ruby - 如何使用 Nokogiri 将一个节点的 HTML 内容添加到另一个节点

ruby-on-rails - 3.days.ago, 2.hours.from_now 等没有 Rails?

ruby - 正则表达式 (\d{3})(?=\d) 是什么意思?