Java 参数中带有西里尔字符的SOAP请求

Java 参数中带有西里尔字符的SOAP请求,java,web-services,soap,wsdl,Java,Web Services,Soap,Wsdl,有一个具有WSDL接口的web服务,我必须为此服务创建一个简单的客户端。我已经解析了WSDL文件,并基于它们生成了客户端逻辑。该逻辑必须从客户端获取键值,使用该值发出SOAP请求,将该请求发送到服务器,从响应中获取响应a并显示值。该服务能够从客户处获取用英语和俄语编写的关键值,并以英语提出请求。但当我尝试用西里尔字母符号发送请求时,服务器返回错误的结果。我想这是因为编码。我试图用这段代码(Java)将该字符串转换成UTF-8 我知道Java中的String只能存储UTF-16值,所以这可能是无用

有一个具有WSDL接口的web服务,我必须为此服务创建一个简单的客户端。我已经解析了WSDL文件,并基于它们生成了客户端逻辑。该逻辑必须从客户端获取键值,使用该值发出SOAP请求,将该请求发送到服务器,从响应中获取响应a并显示值。该服务能够从客户处获取用英语和俄语编写的关键值,并以英语提出请求。但当我尝试用西里尔字母符号发送请求时,服务器返回错误的结果。我想这是因为编码。我试图用这段代码(Java)将该字符串转换成
UTF-8


我知道Java中的
String
只能存储
UTF-16
值,所以这可能是无用的,但我应该使用的服务WSDL中的方法只能获取
String
。SOAP请求的参数中也有
utf-8
。我应该怎么做才能使web服务采用正确编码的西里尔字母符号?我是否可以更改从WS解析的WSDL类,使它们使用
utf-16
编码生成请求,或者这是一个错误的想法?

为什么不直接使用:pt=city.getBytes(“utf-8”);我已经试过了,但还是没什么变化。为什么不干脆:pt=city.getBytes(“UTF-8”);我试过了,但没什么改变。
String city = "Москва";
byte[] pt;
pt = city.getBytes(StandardCharsets.UTF_16);
city = new String(pt, "UTF-8");