Title: Windows Live Agents: Non-UTF8 encodings
Slug: windows-live-agents-non-utf8-encodings
Date: 2008-04-16 13:34:00
Author: Kartones
Lang: en
Tags: Development, XML, Windows Live Agents
Description: About the limited support for non-UTF8 encodings in Windows Live Agents SDK.

 <p align="justify"><br>One problem we've recently found is that the current version of the SDK has limited support for XML encodings other than UTF8. In fact, the <font face="Courier New" color="#800000">encoding</font> attribute in the XML files seems to be just ignored.</p> <p align="justify">We are reading spanish encoded XMLs (ISO-8859-1), and we had some problems with accents and special characters. As not displaying them is clearly not an option, I digged in inside the SDK libraries until I found one function that solved the problem, <font face="Courier New">StringUTF8ToLatin1()</font>.</p> <p align="justify">Let's see how it works with a simple example.</p> <p align="justify">This is a simple XML with spanish characters:</p> <p align="justify"><font face="Courier New"><font color="blue">&lt;</font><font color="maroon">?xml</font><font color="red"> version</font><font color="blue">="1.0"</font><font color="red"> encoding</font><font color="blue">="ISO-8859-1"?&gt;</font></font><font color="black"><br></font><font face="Courier New"><font color="blue">&lt;</font><font color="maroon">messages</font><font color="blue">&gt;</font></font><font color="black"><br></font><font face="Courier New"><font color="blue">&lt;</font><font color="maroon">message</font><font color="blue">&gt;</font></font><font color="black"><br></font><font face="Courier New"><font color="blue">&lt;</font><font color="maroon">text</font><font color="blue">&gt;</font><font color="black">TEST ENCODING ...</font><font color="blue">&lt;/</font><font color="maroon">text</font><font color="blue">&gt;</font></font><font color="black"><br></font><font face="Courier New"><font color="blue">&lt;/</font><font color="maroon">message</font><font color="blue">&gt;</font></font><font color="black"><br></font><font face="Courier New"><font color="blue">&lt;/</font><font color="maroon">messages</font><font color="blue">&gt;</font></font><font color="black"></font></p> <p align="justify"> </p> <p align="justify">We build the datasource as usual:</p> <p><font face="Courier New">datasource TestEncoding() =&gt; TEXT, USER<br>  file<br>    testencoding.xml<br>  simple xml<br>    messages<br>      message {loop=content}<br>        text<br></font></p> <p> </p> <p>And a sample pattern that loads the xml and displays each <font face="Courier New"><font color="blue">&lt;</font><font color="maroon">message</font><font color="blue">&gt;</font></font> element properly:</p> <p><font face="Courier New">+ test_spanishencoding<br>  MESSAGES = ()<br>  try<br>    RESULTS &lt;= TestEncoding()<br>      - StringUTF8ToLatin1(RESULTS.TEXT)<br>  catch ERROR<br>    - ERROR</font></p> <p align="justify"> </p> <p align="justify">Simple, but works perfectly :)</p>
