Java 用爪哇语&;“curren”;被编码为¤&引用;。如何防止这种情况

Java 用爪哇语&;“curren”;被编码为¤&引用;。如何防止这种情况,java,Java,我想从Java代码中调用如下Web服务: ”http://example.com/mytarget?firstParam=xxx¤cy=EUR“ 但不管我做什么。一旦我在其中使用“¤cy=”组合一个字符串,它就会立即被”·cy=“替换,这是Web服务不喜欢的,并以错误响应 为了说明这一点,我使用了一个小代码snipet: String uri = "http://example.com?test=1&currency=EUR"; HttpGet request =

我想从Java代码中调用如下Web服务:

”http://example.com/mytarget?firstParam=xxx¤cy=EUR“

但不管我做什么。一旦我在其中使用“¤cy=”组合一个字符串,它就会立即被
”·cy=“
替换,这是Web服务不喜欢的,并以错误响应

为了说明这一点,我使用了一个小代码snipet:

String uri = "http://example.com?test=1&currency=EUR";
HttpGet request = new HttpGet(uri); //string got replaced already!
request.addHeader("content-type", "application/json");
HttpResponse result = httpClient.execute(request);
String json = EntityUtils.toString(result.getEntity(), "UTF-8");
上面的代码调用:
“http://example.com?test=1·cy=欧元“

类似的问题,没有答案:

有什么想法吗?
或者,是否有一种从Java代码调用Web服务的“正确”方法可以避免此问题?

HttpGet必须这样做。也许HttpGet提供了一种不同的机制来添加查询参数。您可以使用
currency
作为第一个参数。不确定这是一个清晰的重复,因为他提供的示例不需要任何编码@OP:为了它的价值,我测试了你的例子,并用Fiddler检查了一下,看看生成了什么URL,它对我来说很好。你确定问题不在于服务本身吗?听起来像是说
System.out.println(“¤”)不输出“
¤
”。但确实如此。@OP:在事件链中,您在哪里首先注意到URL在您描述的过程中发生了变化?您在java代码中看到了吗?您是否拦截请求并在那里注意到它?你在服务端注意到了吗?HttpGet一定在这么做。也许HttpGet提供了一种不同的机制来添加查询参数。您可以使用
currency
作为第一个参数。不确定这是一个清晰的重复,因为他提供的示例不需要任何编码@OP:为了它的价值,我测试了你的例子,并用Fiddler检查了一下,看看生成了什么URL,它对我来说很好。你确定问题不在于服务本身吗?听起来像是说
System.out.println(“¤”)不输出“
¤
”。但确实如此。@OP:在事件链中,您在哪里首先注意到URL在您描述的过程中发生了变化?您在java代码中看到了吗?您是否拦截请求并在那里注意到它?你注意到服务端有吗?