2

我正在尝试从 URI 获取源。它被报告为 UTF-8。我也尝试过 ISO-8859-1、ISO-8859-1 Windows-1250 和 ISO-8859-2。

这是我最近尝试的代码(尝试 ISO-8859-2):

public static String getPage(String page,String charset) throws IOException{
        URL url=new URL(page);

        return org.apache.commons.io.IOUtils.toString(url.openConnection().getInputStream(),charset);
    }

    public static void main(String args[])throws Exception{
        String page=getPage("http://buscon.rae.es/drae/srv/search?val=aba","ISO-8859-2");
        System.out.println(page);
    }

但结果是:

apÄ?ge 'quita, aparta', y este del gr. á¼?Ï?αγε)

代替:

(Del lat.apăge 'quita, aparta', y este del gr. ἄπαγε)。

同样,UTF-8(适用于其他代码和浏览器)和其他编码名称也以类似的方式失败。

4

1 回答 1

3

U+0103 (ă) 被编码为字节序列C4 83;此数据为 UTF-8。

该错误可能是由于您通过PrintStream附加到执行的其他转码操作System.out。这会将数据编码为系统编码,这可能是有损转换,如果写入的设备不使用匹配的编码,可能会导致损坏。

您可以在此处阅读有关 Windows 控制台的一些分析。

于 2012-08-08T11:26:39.870 回答