如何在Java中使用encoding URIbuilder()方法
我在JAVA中使用一些API 我需要在URI中使用韩文文本,请求是字符串变量。如何在Java中使用encoding URIbuilder()方法,java,url,encoding,uri,encode,Java,Url,Encoding,Uri,Encode,我在JAVA中使用一些API 我需要在URI中使用韩文文本,请求是字符串变量。 如果我设置request=”안녕하세요";我使用以下代码: final URI uri = new URIBuilder().setScheme("https").setHost(server + "api.net").setPath("/api/" + "/" + **request**).setParameters(param).build(). ; 如果我使用它,我可以看到以下结果: 我已尝试使用此代码:
如果我设置
request=”안녕하세요";代码>我使用以下代码:
final URI uri = new URIBuilder().setScheme("https").setHost(server + "api.net").setPath("/api/" + "/" + **request**).setParameters(param).build(). ;
如果我使用它,我可以看到以下结果:
我已尝试使用此代码:
final URI uri = new URIBuilder().setScheme("https").setHost(server + "api.net").setPath("/api/" + "/" + **URLEncoder.encode(request, "UTF-8")**).setParameters(param).build(). ;
但我得到了同样的结果
如何解决此问题?您的URI已被编码。与URL一样,您不能使用特殊字符,如果要检索请求
字符串,您必须解码URI的特定部分,如下所示:
String result = java.net.URLDecoder.decode(uri.getPath(), "UTF-8");
System.out.println(result); // this will print "/api/안녕하세요"
委员会确认:
URI是一个非常有限的集合中的字符序列:
基本拉丁字母表中的字母、数字和一些特殊字母
人物
后来它说:
百分比编码的八位字节[…]可以在URI中使用,以
表示US-ASCII编码字符范围之外的字符
设置方案或协议是否允许此表示
在其中引用URI的元素
这就是你得到的一堆角色
希望你觉得这很有用。非常感谢!我还有其他路线。.最终URI uri2=新URI(URI.getScheme()+“://”+URI.getHost()+URI.getPath()+“?”+URI.getQuery());我不知道为什么没有中断文本,但我认为比我的代码更好,真的谢谢!!