Python Web服务客户端UTF-8和特殊字符

Python Web服务客户端UTF-8和特殊字符,python,web-services,utf-8,Python,Web Services,Utf 8,与sud和pysimplesoap请求一样,当我尝试发送包含一些UTF-8特殊字符的请求时,答案是ascii编解码器无法解码字节。如果SoapUI没有这样的问题,WebService将返回正确的答案。代码如下: def check_customer_via_reference(self, reference): wsdl_service = Client(http://localhost:81/localService/Service.svc?wsdl) xml = Raw(""

与sud和pysimplesoap请求一样,当我尝试发送包含一些UTF-8特殊字符的请求时,答案是ascii编解码器无法解码字节。如果SoapUI没有这样的问题,WebService将返回正确的答案。代码如下:

def check_customer_via_reference(self, reference):
    wsdl_service = Client(http://localhost:81/localService/Service.svc?wsdl)
    xml = Raw("""
                <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                xmlns:wcf="http://localService">
                   <soapenv:Header/>
                   <soapenv:Body>
                      <wcf:GetCode>
                         <wcf:Par1>test</wcf:Par1>
                         <wcf:Code>ąęźżć</wcf:Code>
                      </wcf:GetCode>
                   </soapenv:Body>
                </soapenv:Envelope>
    """)
    result = wsdl_service.service.GetCode(__inject={'msg': xml})
而SoapUI将返回

<a:Code>0</a:Code>
0

有什么想法吗?任何帮助都将不胜感激

使用
unicode
字符串更改您的
Raw
对象

xml = Raw(u"""
                <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                xmlns:wcf="http://localService">
                   <soapenv:Header/>
                   <soapenv:Body>
                      <wcf:GetCode>
                         <wcf:Par1>test</wcf:Par1>
                         <wcf:Code>ąęźżć</wcf:Code>
                      </wcf:GetCode>
                   </soapenv:Body>
                </soapenv:Envelope>
    """)
xml=Raw(u”“”
测试
ąęźżć
""")

这没有我想象的那么有用。看起来这个问题的答案不是使用Raw,而是在不声明unicode字符串的情况下将其作为常规str传递。
xml = Raw(u"""
                <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                xmlns:wcf="http://localService">
                   <soapenv:Header/>
                   <soapenv:Body>
                      <wcf:GetCode>
                         <wcf:Par1>test</wcf:Par1>
                         <wcf:Code>ąęźżć</wcf:Code>
                      </wcf:GetCode>
                   </soapenv:Body>
                </soapenv:Envelope>
    """)