导出的JAR中的编码

时间:2012-10-16 17:13:35

标签: java eclipse encoding utf-8 jar

我在Java中遇到编码问题。我在eclipse UTF-8中设置了编码。当我从eclipse运行我的应用程序时一切正常但是当我导出到jar并通过双击运行它我有????字符。当我从命令行运行时:java -jar app.jar一切正常。问题在于从其他站点下载的数据(该站点是utf8编码的)。解决方案是什么?

修改 在所有平台上,当我从命令行运行时,defaultEncoding()是UTF-8。但是当我双击时: Mac:US-ASCII Windows:windows-1250

我编写了编码方法,但它仍无法正常工作:

public String getPageContent(String url) throws MalformedURLException, IOException
{
    URL urlReader;
    InputStream response = null;
    BufferedReader reader;
    String pageContent = "";
    urlReader = new URL(url);
    response = urlReader.openStream();
    reader = new BufferedReader(new InputStreamReader(response));


    for (String line; (line = reader.readLine()) != null;) {
        pageContent += this.encode(line, "UTF-8");

    }   
    reader.close();
    return pageContent;        
}
public String encode(String s, String charset)
{
        try {
            byte[] b = s.getBytes(charset);
            s = new String(b, charset);
            return s;
        } catch (UnsupportedEncodingException e1) {


    // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    return s;

}

2 个答案:

答案 0 :(得分:2)

构造InputStreamReader时需要指定UTF-8字符集。

reader = new BufferedReader(new InputStreamReader(response, "UTF-8"));

完全接收字符串之后,你不应该尝试重新编码字符串。

答案 1 :(得分:0)

Setting the default Java character encoding? 这里已经讨论过更多细节了。希望这个帮助

相关问题