我在http://hndroidapi.appspot.com/news/format/json/page/?appid=test从远程 json 提取数据。我遇到的问题是这个 API 似乎在构建 JSON 时没有正确处理 UTF-8 编码(如果我在这里错了,请纠正我)。例如,现在通过的部分结果是
{
"title":"IPad - please don€™t ding while you and I are asleep ",
"url":"http://modern-products.tumblr.com/post/25384729998/ipad-please-dont-ding-while-you-and-i-are-asleep",
"score":"10 points",
"user":"roee",
"comments":"18 comments",
"time":"1 hour ago",
"item_id":"4128497",
"description":"10 points by roee 1 hour ago | 18 comments"
}
注意don€™t
. 这不是它令人窒息的唯一类型的角色。鉴于我不控制 API,我能做些什么来将数据转换为干净的东西吗?
编辑:
这是我拉下 JSON 的方式:
hn_url = "http://hndroidapi.appspot.com/news/format/json/page/?appid=test"
url = URI.parse(hn_url)
# Attempt to get the json
req = Net::HTTP::Get.new(hn_url)
req.add_field('User-Agent', 'Test')
res = Net::HTTP.start(url.host, url.port) {|http| http.request(req) }
response = res.body
if response.nil?
puts "Bad response when fetching HN json"
return
end
# Attempt to parse the json
result = JSON.parse(response)
if result.nil?
puts "Error parsing HN json"
return
end
编辑2:
刚刚找到 API 的 GitHub 页面。看起来这是一个悬而未决的问题。仍然不确定我是否可以从最后做任何解决方法: https ://github.com/glebpopov/Hacker-News-Droid-API/issues/4