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

URL java中的特殊字符无效

孟昆
2023-03-14

我正在制作一个程序,从传奇联盟api获取数据,它分析你当前的游戏,并向你显示你的对手的名字,等级和东西。但我有一个问题,因为要获得某人的排名,我需要访问一个特定的url,其中包含他的尼克。问题是,一些玩家在他们的刻痕中放置了å、á、è、ö之类的角色,当这种情况发生时,我的程序就会停止工作。我将向您展示我用来实现这一点的部分代码:

getSummonerID2 = new JSONObject(IOUtils.toString(newURL("https://euw1.api.riotgames.com/lol/summoner/v3/summoners/by-name/"+ newPlayerNick[i] + "?api_key=" + APIKEY), Charset.forName("UTF-8")));

这就是它抛出的错误:java。io。IOException:服务器返回了URL的HTTP响应代码:400:https://euw1.api.riotgames.com/lol/summoner/v3/summoners/by-name/JegFårDetDårligt?api_key=(我的key,不能显示sry)

我以前遇到过空格,因为看起来你甚至不能在url中放置空格,所以我解决这个问题的方法是:

newPlayerNick[i] = playerNick[i].replaceAll("\\s+","_");

这基本上用一个å替换了每个空格,所以它工作得很好,但我不能用一个普通的“a”替换一个“å”,因为它们是不同的字符。

那么,你知道有什么解决方法吗?非常感谢你们。

共有1个答案

王辉
2023-03-14

您可以尝试对特殊字符进行URL编码:

URLEncoder.encode("This string has å à è ö and spaces","UTF-8")

输出如下:

This+string+has+%C3%A5+%C3%A0+%C3%A8+%C3%B6+and+spaces

你可以试试这个网址看看它是否有效:

https://www.google.com.hk/search?q=This字符串有åáèö和空格

你可以看到它是一个谷歌链接,关键字被传递

 类似资料:
  • 关于字符集和替代字形 除键盘上可看到的字符之外,字体中还包括许多字符。根据字体的不同,这些字符可能包括连字、分数字、花饰字、装饰字、序数字、标题和文体替代字、上标和下标字符、变高数字和全高数字。字形是特殊形式的字符。例如,在某些字体中,大写字母 A 有几种形式可用,如花饰字或小型大写字母。 插入替代字形的方式有两种: 可以使用 “字形 ”面板来查看和插入任何字体中的字形。 可以使用 “OpenTy

  • 一些字符在 XML 中有特殊的含义,只能够通过其实体名称输入 字符 写法 缩写涵义 < &lt; less than > &gt; greater than & &amp; ampersand " &quot; quote ' &apos; apostrophe 空格 &nbsp; none-break space 通常需要使用实体输入的字符包括<、&、空格   XML 会将任意数量的空格解析为一

  • 问题内容: 我想将特殊字符,括号(“(”和“)”)和撇号(“)”放在枚举中。 我有这个: 但这不起作用。Java说了一些有关无效令牌的内容。我该如何解决? Grtz me.eatCookie(); 问题答案: 您可以执行以下操作: 使用示例:

  • 问题内容: 我在数据库中有包含特殊字符的单词(大多数情况下为西班牙语,如波浪号)。在数据库中,所有内容均已保存并使用PHPmyAdmin正确显示,但是当我获取数据(使用PHP)并将其显示在浏览器中时,我得到了一个奇怪的字符,例如“?”。用一个正方形…我需要一个一般性的修补程序,因此我不必每次都转义每个字符,而且我还可以将PHP表单中的特殊西班牙字符插入数据库中… HTML是正确的: 所有表和数据库

  • 当序列化特殊字符(如TAB、换行和回车)作为属性值时,我遇到了一个问题。 据此,http://www.w3.org/TR/1999/WD-xml-c14n-19991109.html#charescaping,这些应编码为

  • 我想检查一个字符串是否包含特殊字符,比如!@#$%^&*.,<>/\'“;:?如果字符串至少包含其中一个字符,则返回true。 我尝试使用以下regex脚本: