Tag: url encoding

JSP 2.0 SEO友好链接编码

目前我在JSP中有这样的东西 我的URL的重要部分是ID,我只是为了SEO而把它的名字放在它上面(就像stackoverflow.com那样)。 我只是想知道是否有一种快速而干净的方式来编码名称(更改每个+的空格,拉丁字符删除等)。 我希望它是这样的: 那里有这样的function还是应该自己动手?

在Java中编码URL的最佳方法

嗨,大家好, 我有一个URL,我想将它嵌入到mailto的主体中。 直到现在,我已经尝试了两种方法对URL进行编码,这两种方法都没有给我带来好的结果: URLEncoder – 这给了我电子邮件中的加号,因为显然URLEncoder仅适用于查询参数。 org.apache.commons.httpclient.URI – 这不会给我完整的URL。 它给了我与之前在post中解释的结果相同的结果: MailTo中的Escape和符号 我能做什么? 谢谢:) Krt_Malta

在Jersey Client 2中编码花括号

我们正在使用Jersey Client 2.21。 我注意到,当我们将花括号(又名花括号)作为参数值时,它不会被正确编码。 不仅如此,花括号内的任何内容都不会被编码。 对于我测试过的常规括号或其他不安全字符,情况并非如此。 请参阅下面的示例。 在这个例子中,我输入三个参数。 一个只有空格的控制参数。 一个用花括号,一个用常规括号。 public static void testJerseyEncoding() { Client client = ClientBuilder.newClient(); String url = “http://foo.com/path”; Map map = new HashMap(); map.put(“paramWithCurly”, ” {with a space}”); map.put(“paramWithOutCurly”, “with a space”); map.put(“paramWithBracket”, “[with a space]”); WebTarget target = client.target(url); for (Map.Entry entry : map.entrySet()) { target = target.queryParam(entry.getKey(), entry.getValue()); […]

Java中用于非ASCII字符的URL解码

我正在尝试使用Java来解码包含%编码字符的URL 我已经尝试使用java.net.URI类来完成这项工作,但它并不总是正常工作。 String test = “https://fr.wikipedia.org/wiki/Fondation_Alliance_fran%C3%A7aise”; URI uri = new URI(test); System.out.println(uri.getPath()); 对于测试字符串“ https://fr.wikipedia.org/wiki/Fondation_Alliance_fran%C3%A7aise ”,结果是正确的“/ wiki/Fondation_Alliance_française”(%C3%A7被ç正确替换)。 但对于其他一些测试字符串,如“ http://sv.wikipedia.org/wiki/Anv%E4ndare:Lsjbot/Statistik#Drosophilidae ”,它会给出错误的结果“/ wiki /Anv ndare:Lsjbot / Statistik”( %E4替换为 而不是ä)。 我用getRawPath()和URLDecoder类进行了一些测试。 System.out.println(URLDecoder.decode(uri.getRawPath(), “UTF8”)); System.out.println(URLDecoder.decode(uri.getRawPath(), “ISO-8859-1”)); System.out.println(URLDecoder.decode(uri.getRawPath(), “WINDOWS-1252”)); 根据测试字符串,我得到不同编码的正确结果: 对于%C3%A7,我得到了正确的“UTF-8”编码结果,并且“ISO-8859-1”或“WINDOWS-1252”编码结果不正确 对于%E4,情况正好相反。 对于这两个测试url,如果我将它们放入Chrome地址栏,我会获得正确的页面。 如何在所有情况下正确解码URL? 谢谢你的帮助 ====回答==== 感谢McDowell在下面回答的建议,它现在似乎有效。 这是我现在的代码: private static void appendBytes(ByteArrayOutputStream buf, String data) throws UnsupportedEncodingException { byte[] b = […]

如何在Android上使用Google的中文字符文字转语音服务?

我正试图从谷歌的文字转语音function中提取音频文件。 基本上,你抛出链接,然后在结束时连接任何你想说的话。 我已经得到了下面的代码,可以很好地用于英语,所以我认为问题必须是如何在请求中对汉字进行编码。 这是我得到的: String text = “text to be spoken”; public static final String AUDIO_CHINESE= “http://www.translate.google.com/translate_tts?tl=zh&q=”; public static final String AUDIO_ENGLISH = “http://www.translate.google.com/translate_tts?tl=en&q=”; URL url = new URL(AUDIO_ENGLISH + text); urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod(“GET”); urlConnection.setRequestProperty(“Accept-Charset”, Variables.UTF_8); if (urlConnection.getResponseCode() ==200) { //get byte array in response in = new DataInputStream(urlConnection.getInputStream()); } else { in […]

查询字符串中Hash(#)的行为是什么

我发送带有查询字符串的以下url。 在查询字符串中,一个参数“approverCmt”具有带散列(#)的值。 “/abc/efd/xyz.jas?approverCmt=Transaction Log #459505&batchNm=XS_10APR2015_082224&mfrNm=Timberland” 在服务器端,当我试图从我得到的请求中检索它 approverCmt = Transaction Log —–> “#459505” is missing batchNm = null mfrNm = null 如果我从查询字符串中删除哈希(#)或如果我用#23替换#,那么每件事情都可以 如果另一个参数包含一个哈希(#)符号,我不明白为什么我为一个参数获取null。 感谢任何人都可以解释。

java.net.URI对主机部分中的特殊字符进行了扼流

我有一个如下所示的URI字符串: HTTP://www.christlichepartei%F6sterreichs.at/steiermark/ 我正在用这个字符串创建一个java.lang.URI实例并且它成功但是当我想要检索主机时它返回null。 如果我完全如上所示输入它,Opera和Firefox也会阻塞此URL。 但是,如果URI类无效,那么它应该抛出URISyntaxException吗? 如何检测到URI是非法的呢? 当我使用产生的URLDecoder解码字符串时,它的行为也相同 http:// www.christlicheparteiösterreichs.at/ steiermark / 现在这已被Opera和Firefox接受,但java.net.URI仍然不喜欢它。 我该如何处理这样的URL? 谢谢

如何避免从URL.getFile()获取URL编码路径?

我在尝试获取给定资源的路径时遇到以下问题: System.out.println(“nf=”+new File(“.”).getAbsolutePath()); System.out.println(“od=”+new File(this.getClass().getResource(“.”).getFile()); 我得到的输出是: nf=C:\Users\current user\workspace\xyz\. od=C:\Users\current%20user\workspace\xyz\bin\something 问题在于%20 URL编码的事情。 怎么避免呢? 有没有直接的方法来避免首先获得这种字符串,或者我应该只针对一些将进行URL解码的方法运行返回的字符串? 谢谢

如何创建隐藏其参数的Wicket URL?

我目前正在创建一组包含以下代码的链接: BookmarkablePageLink havarti = new BookmarkablePageLink(“havarti”, CheeseMain.class); havarti.setParameter(“Title”, “Havarti”); havarti.setParameter(“Group”, “cheeseName”); add(havarti); 出来的url格式为https://mysite.com/;jsessionid=B85EE5CB0349CCA2FE37AF76AB5C30C1?wicket:bookmarkablePage=:com.mycompany.cheese.CheeseMain&Title=Havarti&group=cheeseName 。 我的问题是我不再希望此链接的URL是可collections的。 理想情况下,我希望它像https://mysite.com/cheese一样简单,但我可以使用丑陋的URL。 重要的是参数不可见。 我应该如何改变我生成链接的方式? 我查看了Wicket提供的不同URL编码策略,但没有一个删除参数; 他们只是以不同的方式展示

在Tomcat中自动检测URI编码

我有一个运行Apache Tomcat 6.x的实例,我想让它解释传入URL的字符集比默认行为更加智能。 特别是,我想实现以下映射: So%DFe => Soße So%C3%9Fe => Soße So%DF%C3%9F => (error) 我想要的bevavior可以被描述为“尝试将字节流解码为UTF-8,如果它不起作用则假设ISO-8859-1”。 在这种情况下,仅使用URIEncoding配置不起作用。 那么如何配置Tomcat以我想要的方式对请求进行编码? 我可能必须编写一个filter来接收请求(尤其是查询字符串)并将其重新编码为参数。 这是自然的方式吗?