[Mono-list] WCF service error message encoding

Jeff Bonhag jbonhag at SCA-CORP.COM
Fri May 15 18:06:27 UTC 2015


Hi,

I'm debugging a WCF web service on Linux that's using System.Data.Odbc 
and unixODBC to connect to DB2 running on another server.  I get an 
error message when I try to connect to the database, but that's not my 
main concern.  The error message seems to be using the wrong encoding, 
because the response looks like this:

<Fault xmlns="http://schemas.microsoft.com/ws/2005/05/envelope/none">
   <Code>
     <Value 
xmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none">a:InternalServiceFault</Value>
   </Code>
   <Reason>
     <Text xml:lang="">
ERROR [䤀䴀  ㈀] 嬀甀渀椀砀伀䐀䈀䌀崀嬀䐀爀椀瘀攀爀 䴀愀渀愀最攀爀崀䐀 
愀琀愀 猀漀甀爀挀攀 渀愀洀攀 渀漀琀 昀漀甀渀搀Ⰰ 愀渀搀 渀漀 搀攀昀愀甀氀 
琀 搀爀椀瘀攀爀 猀瀀攀挀椀昀椀攀搀
     </Text>
   </Reason>
... etc

I piped the result through `iconv -f UTF-8 -t UTF-16BE`, and discovered 
the error (spaces were included in the response):

  E R R O R   [I M 0 0 2  ]  [ u n i x O D B C ] [ D r i v e r   M a n a 
g e r ] D a t a   s o u r c e   n a m e   n o t   f o u n d ,   a n d 
n o   d e f a u l t   d r i v e r   s p e c i f i e d

So now I know what the problem is, but why is the error message coming 
back like that?  Is this a unixODBC problem?

`locale` is:
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Any ideas would be appreciated.

Thank you,
Jeff


More information about the Mono-list mailing list