无法以正确的编码从url读取js文件

时间:2018-02-06 12:44:04

标签: java url utf-8 fileutils

我想从url https://d3c3cq33003psk.cloudfront.net/opentag-67008-473432.js

中读取js文件作为字符串

我尝试了几种方法(从网址读取或下载然后阅读),但是我一直收到不可读的字符,比如 ( _ s d :` . i ....
我试过的方式:
1.从网址下载文件:

FileUtils.copyURLToFile(jsUrl, file);

2。从网址阅读:

    StringBuilder sb = new StringBuilder();
    try {
        URL url = new URL(jsUrl);
        // read text returned by server
        BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
        String line;
        while ((line = in.readLine()) != null) {
            sb.append(line).append("\n");
        }
        in.close();
    } catch (Exception e) {
    }
    return sb.toString();

如果我从网址手动下载文件(page->另存为...) - 可以使用普通的UTF-8编码的Notepad ++打开文件。
有人可以帮我处理这个奇怪的文件吗?

1 个答案:

答案 0 :(得分:3)

这是GZIPped。使用round

更新

GZIPInputStream

更新2

使用URLConnection:

        InputStream stream = url.openStream();
        if ("gzip".equalsIgnoreCase(cnt.getHeaderField("Content-Encoding"))) {
            stream = new GZIPInputStream(stream);
        }
        BufferedReader in = new BufferedReader(new InputStreamReader(stream, "UTF-8"));