java - org.apache.commons.io.IOUtils.toString 错误解释 UTF-8

标签 java url character-encoding

我正在尝试从 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。 á¼?Ï?αY³Îµ)

而不是:

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

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

最佳答案

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

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

您可以阅读有关 Windows 控制台的一些分析 here .

关于java - org.apache.commons.io.IOUtils.toString 错误解释 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11849624/

相关文章:

java - 如何将 ArrayList 拆分为多个列表?

python - 如何将整数转换为 Python 中最短的 url 安全字符串?

java - 在 POST 到外部 URL 之前执行一些 JSF 业务逻辑

java - Facebook API/Android : Wall Post publish with image attachment not working

java - 在 Java 中将 int[] 转换为 List<Integer> 的最佳方法?

java - 如何在用户强制停止后自动重新启动服务

特定网址的 Javascript 样式

java - 如何在用 Java 读/写时强制使用 UTF-16?

visual-studio-2010 - 尽管字符集正确,德语元音仍显示错误

java - 字符串编码 - Shift_JIS/UTF-8