0

我用AQuery来获取数据,源编码windows-1251在第一次显示一切都很好,但是从缓存中检索到数据后,我没有得到正确的编码。

我愿意

String url = "http://example.com/";
long expire = 15 * 60 * 1000;
aq.ajax(url, String.class, expire, new AjaxCallback<String>() {

    @Override
    public void callback(String url, String html, AjaxStatus status) {

        Log.i("DATA",html);

    }

});

手册是这样说的

如果需要自定义编码,请使用 encoding() 方法来修复编码。

也试过了,但是没用

byte[] b = html.getBytes(Charset.forName("cp1251"));

try {
    html = new String(b, "UTF-8");
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    }

也许有人面临这个问题提示决定意味着 AQuery 或如何将字符串编码为 UTF-8 > CP1251

4

1 回答 1

0

这对我有用:

long expire = 15 * 60 * 1000;

AjaxCallback<String> cb = new AjaxCallback<String>();
cb.url(url).type(String.class).weakHandler(this, "DataResponse").fileCache(true).expire(expire).encoding("Cp1251");

cb.header("Referer", "http://code.google.com/p/android-query/");
cb.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2");

aq.ajax(cb);
于 2014-06-26T01:34:04.783 回答