我们继承了一个使用 Apache CXF 编写的 Web 服务。响应中的文本字段包含单引号和“en”破折号 (ascii 150) 等字符。这些在响应中显示为正方形(使用 SoapUI)或问号。
文本来自设置为 WE8MSWIN1252 字符集的 Oracle 数据库。我想我需要将 Web 服务响应的编码/字符集设置为匹配(即 Windows-1252),但找不到地方可以做到这一点。
我可以对文本进行 XML 编码(例如,这些破折号显示为 )。但是,如果可以使用本地支持这些字符的字符集,这似乎更可取,对吗?
知道如何更改 SOAP 响应的编码吗?
最佳答案
请尝试将以下代码添加到您的 Apache CXF Web 服务方法中。
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.PhaseInterceptorChain;
Message message = PhaseInterceptorChain.getCurrentMessage();
message.put(Message.ENCODING, "Cp1252");
关于java - 更改 CXF Web 服务上的响应字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15528709/