Java:下载url中带有特殊字符的web内容

Java:下载url中带有特殊字符的web内容,java,download,Java,Download,我正在下载网页内容,但地址有特殊字符。例如,它在myUrl中包含单词adiós。我正在使用下面的代码,但没有成功。你有什么建议吗?谢谢 String myUrl="http://www.somethingxxxxx.com/adiós"; URLConnection yc = new URL(myUrl).openConnection(); BufferedReader in = new BufferedReader(new InputStreamReader(

我正在下载网页内容,但地址有特殊字符。例如,它在
myUrl
中包含单词
adiós
。我正在使用下面的代码,但没有成功。你有什么建议吗?谢谢

String myUrl="http://www.somethingxxxxx.com/adiós";   
URLConnection yc = new URL(myUrl).openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(
                                                yc.getInputStream()));

使用类而不是java.netURL

使用类而不是java.netURL

您只需要在使用URL之前对其进行编码。为此,您可以尝试以下方法:

try {
    String base = "http://www.somethingxxxxx.com/";
    String toEncode = "adiós";
    String myEncodedUrl = base + URLEncoder.encode( toEncode, "UTF-8" );
    URLConnection yc = new URL(myEncodedUrl).openConnection();
    BufferedReader in = new BufferedReader(new InputStreamReader(
                                            yc.getInputStream()));
} catch ( UnsupportedEncodingException exc ) {
   exc.printStackTrace();
} catch ( IOException exc ) {
   exc.printStackTrace();
}

您只需要在使用URL之前对其进行编码。为此,您可以尝试以下方法:

try {
    String base = "http://www.somethingxxxxx.com/";
    String toEncode = "adiós";
    String myEncodedUrl = base + URLEncoder.encode( toEncode, "UTF-8" );
    URLConnection yc = new URL(myEncodedUrl).openConnection();
    BufferedReader in = new BufferedReader(new InputStreamReader(
                                            yc.getInputStream()));
} catch ( UnsupportedEncodingException exc ) {
   exc.printStackTrace();
} catch ( IOException exc ) {
   exc.printStackTrace();
}