gpt4 book ai didi

java - 用于 URL、Java 的 UTF-8

转载 作者:行者123 更新时间:2023-11-30 11:03:41 26 4
gpt4 key购买 nike

所以我正在尝试抓取一个提供动词变位的语法网站,但我无法访问需要重音的页面,例如动词“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。

最佳答案

评论总结

测试代码运行正常。

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);
}
}

它像下面这样发出

http://www.teanglann.ie/en/gram/f%EF%BF%BDg

哪个会转到正确的页面。

正确的步骤是

  • 确保源代码编码正确。 (IntelliJ 可能不能全部猜对)
  • 使用适当的编码(在本例中为 utf-8)运行程序

(见 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):通用语法

关于java - 用于 URL、Java 的 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30270990/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com