所以我试图抓住一个语法网站,给你动词的结合,但是我无法访问需要重音的页面,例如动词“fág”的页面。
这是我目前的代码:
String url = "http://www.teanglann.ie/en/gram/"+ URLEncoder.encode("fág","UTF-8");
System.out.println(url);
我在使用和不使用URLEncoder.encode()方法的情况下尝试了这个,它只是一直给我一个'?'使用它时代替'á',我的URL搜索什么都不返回。基本上,我想知道是否有类似Python的'urllib.parse.quote_plus'。我尝试过搜索并尝试了StackOverflow的许多不同方法,但都无济于事。任何帮助将不胜感激。
最终,我将用一个用户输入参数替换给定的字符串。现在只是用它来测试。
解决方案:它不是Java,而是IntelliJ。
答案 0 :(得分:1)
评论摘要
测试代码工作正常。
import java.io.UnsupportedEncodingException;
import static java.net.URLEncoder.encode;
public class MainApp {
public static void main(String[] args) throws UnsupportedEncodingException {
String url = "http://www.teanglann.ie/en/gram/"+ encode("fág", "UTF-8");
System.out.println(url);
}
}
它发出如下
哪个会转到正确的页面。
正确的步骤是
(参见 What is the default encoding of the JVM? (相关讨论)
根据Wyzard的评论编辑
上面的代码是偶然的(比方说没有空格)。获取编码URL的正确方法如下所示 ..
String url = "http://www.teanglann.ie/en/gram/fág";
System.out.println(new URI(url).toASCIIString());
这使用符合RFC 2396的URI.toASCIIString(),其中讨论了统一资源标识符(URI):通用语法