2016-09-16 31 views
0

我正在使用gsoap 2.8.31并开发了一个独立的服务器。无法生成latin1编码风格的响应 - 在gsoap C++

需要产生latin-1编码的输出。现在默认情况下,UTF-8编码的响应。

包括下面的方法来设置OMODE到latin-1在我的代码,

soap_set_omode(soap,SOAP_ENC_LATIN); 
soap_omode(soap,SOAP_ENC_LATIN); 

但即使包括这些后,看不到反映响应latin-1编码任何更改。

如果我错过了将编码风格和字符集设置为latin-1的任何方法,请让我知道。

很多预先感谢。

回答

0

当检测到ISO-8859-1编码的XML时,输入模式标志SOAP_ENC_LATIN由XML解析器自动设置。没有机制来强制ISO-8859-1输出,但可以按如下方式代替XML声明:

soap->prolog = "<?xml version=\"1.0\" encoding=\"latin1\"?>\n"; 

一定要避免使用的XML负载的任何Unicode字符来发送,这将最终编码在UTF-8。