给定以下格式的字符串(Posterous API 以这种格式返回帖子):
s="\\u003Cp\\u003E"
我怎样才能将它转换为实际的ascii字符,这样s="<p>"
?
在 OSX 上,我成功地使用了Iconv.iconv('ascii', 'java', s)
但一旦部署到 Heroku,我就会收到Iconv::IllegalSequence
例外。我猜测 Heroku 部署的系统不支持java
编码器。
我在用HTTParty向 Posterous API 发出请求。如果我使用curl 发出相同的请求,那么我会这样做not得到双斜杠。
来自 HTTParty github 页面:
自动将 JSON 和 XML 解析为
基于响应的 ruby 哈希值
内容类型
Posterous API 返回 JSON(无双斜杠),HTTParty 的 JSON 解析会插入双斜杠。
这是我使用 HTTParty 发出请求的方式的简单示例。
class Posterous
include HTTParty
base_uri "http://www.posterous.com/api/2"
basic_auth "username", "password"
format :json
def get_posts
response = Posterous.get("/users/me/sites/9876/posts&api_token=1234")
# snip, see below...
end
end
将明显的信息(用户名、密码、site_id、api_token)替换为有效值。
在剪断的那一刻,response.body
包含一个 JSON 格式的 Ruby 字符串response.parsed_response
包含一个 Ruby 哈希对象,该对象是 HTTParty 通过解析来自 Posterous API 的 JSON 响应而创建的。
在这两种情况下,unicode 序列如\u003C
已更改为\\u003C
.