使用特殊字符从java调用url

时间:2014-06-20 17:48:46

标签: java url character-encoding utf8-decode

我有一个带有特殊字符的URL,我想请求它,但是JAVA无法识别URL。 网址:http://en.wikipedia.org/w/api.php?action=query&prop=langlinks&titles=Iași&redirects=&lllimit=400(特殊字符来自Iaşi一词ș

我的Java代码:

String sWikiID="Iași";
String sArticleEncoded = URLEncoder.encode(sWikiID);
String sURL = "http://" + sFromLang + ".wikipedia.org" + "/w/api.php?action=query&prop=langlinks&titles=" + sArticleEncoded + "&redirects=&lllimit=400";
URL url = new URL(sURL);
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));

任何提示?

2 个答案:

答案 0 :(得分:1)

您没有定义sFromLang是什么,但请检查这是否适合您:

public static void main(String[] args) throws IOException {

    String sFromLang="<add the value here>";
    String sWikiID="Iași";
    String sArticleEncoded = URLEncoder.encode(sWikiID, "UTF-8");
    String sURL = "http://" + sFromLang + ".wikipedia.org" + "/w/api.php?action=query&prop=langlinks&titles=" + sArticleEncoded + "&redirects=&lllimit=400";
    URL url = new URL(sURL);
    BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
}  

答案 1 :(得分:1)

使用UTF-8或在请求中将%替换为%C8%99。

另外,请勿使用.encode(String)。它被弃用了。相反,请使用.encode(String,Encode)。

:)

辛迪