【问题标题】:How do I handle this response from YQL如何处理来自 YQL 的响应
【发布时间】:2011-08-22 21:02:39
【问题描述】:

在对 YQL (select * from html where url="...") 的请求中,我得到了以下回复:

callback({
    "query":
        {"count":"1","created":"2011-05-09T23:29:05Z","lang":"en-US"
     }, "results": ["<body>... we\ufffdll call Mr ...</body>"]
}

这是来自 YQL 控制台页面。 当我将该序列输入到萤火虫中时(甚至在 YQL 的页面上),我得到:

... we�ll call Mr ...

我做错了什么? YQL 的网站是否编码错误?有没有办法将这样的符号转换为它们的 ascii 等价物?

顺便说一句,这不是我的网站,所以我不能更改该网站上的元字符集

【问题讨论】:

    标签: javascript unicode ascii yql


    【解决方案1】:

    也许这些问题的答案可能有助于获得更好的答案:

    1. 你在那个地方期待什么角色?
    2. 您可以发布您正在抓取的网址吗?
    3. 该页面上的字符是否也在被 YQL 拾取时被损坏?

    更新

    您可能想查看 YQL 查询的 where 子句中的 charset 选项 - 我不完全确定它的作用,但看起来它强制 YQL 引擎在解析时使用指定的字符集这页纸。也许将其设置为UTF-8 会解决您的问题。

    例如,

    select * from html where url = 'http://google.com' and charset='utf-8'
    

    【讨论】:

    • 它已经被 YQL 破坏了,我期待单引号或双引号。主站点的引号都像 MS Word 中一样卷曲
    • @qwertymk 是否可以发布一个重现此行为的 URL?我已经尝试了一些使用智能/弯引号的页面,但它似乎对我来说效果很好,所以它可能是特定于您从中获取数据的页面的东西。
    • 我目前没有,在我的另一台电脑上
    • @qwertymk 如果您在能够访问它时发布它可能会有所帮助。与此同时,我已经发布了我的答案的更新,这可能是解决问题的方法 - html 表支持 charset 选项 - 您可以尝试将其设置为 UTF-8 并查看是否可以使用现在回应。当我将字符集强制为 ASCII 时,我能够在响应中看到大量的 \ufffds。
    • @no.good.at.coding:你能给我一个例子来说明如何做到这一点吗?说到 YQL,我完全迷失了
    猜你喜欢
    • 2020-04-05
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    • 2016-09-30
    • 2021-04-05
    • 1970-01-01
    • 2021-03-26
    相关资源
    最近更新 更多