给定一个字符串的格式(Posterous API以此格式返回帖子):
s="\\u003Cp\\u003E"
如何将字符串
s="<p>"
转换成实际的 ASCII 字符?在 OSX 上,我成功地使用了
Iconv.iconv('ascii', 'java', s)
,但是一旦部署到 Heroku 上,就会收到 Iconv::IllegalSequence
异常。我猜测 Heroku 所部署的系统不支持 java
编码器。
我正在使用 HTTParty 发起对 Posterous API 的请求。如果我使用 curl 进行同样的请求,则不会出现双斜杠。
从 HTTParty 的 github 页面可以看到:
而 Posterous API 返回的是 JSON(没有双斜杠),但 HTTParty 的 JSON 解析却插入了双斜杠。根据响应 content-type 自动将 JSON 和 XML 解析为 Ruby 哈希
以下是我使用 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
请将明显的信息(用户名,密码,站点ID,API令牌)替换为有效值。
在切入点处,response.body
包含一个以JSON格式呈现的Ruby字符串,而response.parsed_response
包含一个Ruby哈希对象,HTTParty通过解析来自Posterous API的JSON响应创建了它。
在这两种情况下,像\u003C
这样的Unicode序列已更改为\\u003C
。
format
命令,可以让你指定返回和解析的格式。你设置了吗? - the Tin Man