[jdev] SASL debugging

Joe Hildebrand hildjj at gmail.com
Sat Dec 10 16:52:40 CST 2005


This always works in Jabber-Net:

System.Text.Encoding.UTF8.GetBytes(elem.OuterXml)


On Dec 10, 2005, at 3:42 PM, Norman Rasmussen wrote:

> Trying to get an object serialized into a utf-8 xml string _without_
> the 0xfeff header.
>
> public static string GetStringFromObject(object Object, Type Type) {
>     MemoryStream ms = new MemoryStream();
>     StreamWriter sw = new StreamWriter(ms, Encoding.UTF8);
>     XmlTextWriter xw = new XmlTextWriter(sw);
>     xw.Formatting = Formatting.Indented;
>
>     XmlSerializer serializer = new XmlSerializer(Type);
>     serializer.Serialize(xw, Object);
>
>     return Encoding.UTF8.GetString(ms.ToArray()).TrimStart('\xfeff');
> }
>
> if I tried it any other way, then either the xml would be labeled as
> utf-16 (when it was actually utf-8/ascii - who knows because it all
> happened to be 7-bit clean) and the web service would bitch, or it
> would be utf-16 and the web service would bitch, or I managed to get
> utf-8 encoding (and the xml header said it was utf-8), but the web
> service I was sending the string to would choke on the utf-8 leader.
>
> On 12/10/05, David Waite <dwaite at gmail.com> wrote:
>>> As you found, sometimes the .net framework actually does a utf-16
>>> encoding when you ask it for utf-8.  This has nailed me recently  
>>> when
>>> trying to use webservices.  I ended up having to add and remove the
>>> 'marker' bytes (0xff, 0xfe) at the front of the byte array to get it
>>> to work properly.
>>
>> Are you encoding using the io framework rather than the text  
>> encoding framework?
>>
>> -David Waite
>>
>
>
> --
> - Norman Rasmussen
>  - Email: norman at rasmussen.co.za
>  - Home page: http://norman.rasmussen.co.za/




More information about the JDev mailing list