我有一个带有特殊字符的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"));
任何提示?
答案 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)。
:)
辛迪