1

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;

}

4

2 に答える 2

2

InputStreamReader を作成するときは、UTF-8 文字セットを指定する必要があります。

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

文字列を受け取った後で、文字列を再エンコードしようとするべきではありません。

于 2012-10-17T09:55:43.397 に答える
0

デフォルトの Java 文字エンコーディングを設定しますか? 詳細については、すでに議論されているスレッドがあります。この助けを願っています

于 2012-10-16T17:16:36.760 に答える