当前位置: 首页 > 知识库问答 >
问题:

如何正确编码此URL

东郭俊楠
2023-03-14

我正在尝试使用JSoup获取此URL

http://betatruebaonline.com/img/parte/330/ciguen%c3%91al.jpg

相反,正确的

http://betatruebaonline.com/img/parte/330/ciguen%cc%83al.jpg

我该怎么解决这个?多谢了。

private static void GetUrl()
{
    try
    {
        String url = "http://betatruebaonline.com/img/parte/330/";
        String encoded = URLEncoder.encode("CIGUEÑAL.JPG","UTF-8");
        Response img = Jsoup
                            .connect(url + encoded)
                            .ignoreContentType(true)
                            .execute();

        System.out.println(url);
        System.out.println("PASSED");
    }
    catch(Exception e)
    {
        System.out.println("Error getting url");
        System.out.println(e.getMessage());
    }
}

共有1个答案

司徒云
2023-03-14

编码没有错,这里的问题是复合unicode&字符“-”的预组合unicode可以以两种方式显示,它们看起来相同但实际上不同

precomposed unicode: Ñ           -> %C3%91
composite unicode: N and ~       -> N%CC%83

我强调两者都是正确的,这取决于您想要哪种类型的unicode:

String normalize = Normalizer.normalize("Ñ", Normalizer.Form.NFD);
System.out.println(URLEncoder.encode("Ñ", "UTF-8")); //%C3%91
System.out.println(URLEncoder.encode(normalize, "UTF-8")); //N%CC%83
 类似资料:
  • 问题内容: 以编程方式确定输入流/文件的正确字符集编码的最佳方法是什么? 我尝试使用以下方法: 但是在我知道要用ISO8859_1编码的文件上,上面的代码会产生ASCII,这是不正确的,并且不允许我将文件的内容正确地呈现回控制台。 问题答案: 无法确定任意字节流的编码。这就是编码的本质。编码是指字节值与其表示形式之间的映射。因此,每种编码“都可以”是正确的。 的getEncoding()方法将返回

  • 因此,我最近开始使用ffmpeg下载实时流媒体视频,但我面临的问题是,下载的视频会阻塞很多,特别是对于长视频(如2小时)而言。 我当前用于下载流文件的命令:- ffmpeg-i"https://link. m3u8"-c复制output.mkv 此命令在35分钟长的视频中运行良好[没有任何卡滞问题],但在2小时长的视频中失败 当我试图使用x264 lib命令编码2小时长的视频时,它还显示了“无效长

  • 很抱歉,如果这是我忽略的非常简单的事情,但我正在尝试制作一个组件,它基本上只将某些react路由器路由限制为具有活动令牌的用户。 看起来(正如预期的那样)只有“console.log(result)”执行了挂起的promise,但在最终结果中,我试图将一些逻辑编码到从后端给出的响应中(true或false),然后这些逻辑应该发送到privaterout组件,以确定是否应该将用户发送回登录,等等。。

  • 我有一个目前看起来像这样的方法: 我的理解是这是错误的。所以现在我正在考虑修复它,它应该是这样的: . doOn成功将返回一个客户响应,我需要在调用Health之前实际检查响应中的内容。构建器::。 如果我调用. fletMap()而不是doOn成功,它会出现错误吗?或者我需要把它放在doOn成功中吗?如果我把它放在doOn成功中,似乎我需要做一个双重doOn成功(这不可能是正确的,是吗?): 此

  • 大家好,我希望这个程序能够对大写字母进行编码,而不使用其他字符,并通过输出传递它们。例如“你好,世界!”运行程序“URYY\d_YQ!”后应变为我得到的是Yluhreylbowjwboerylqdxk而不是“URYY\dyq!”这就是我应该得到的。如果有人能让我知道我做错了什么,我将不胜感激。提前谢谢。

  • 我有一个python 3脚本,它应该从.csv文件中获取一些数据并将其写入json文件。在我的处理过程中,编码是正确的,因此德语元音变音符ü,ä或度符号°就像它们一样(#编码=标题处的cp1252)。 但是当我通过json.dump()写判决时,编码就消失了… 如何使用正确的编码向json文件写入判决?