<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-GB link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Hi,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I have some byte arrays which are UTF8 and some which are UTF8 with byte order markers.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I can convert these arrays to strings using<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>> (babel:octets-to-string foo)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>and<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>> (babel:octets-to-string foo :start 3)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>respectively, but I'm currently having to figure out whether there is a BOM, like this<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>> (subseq foo 0 3)<o:p></o:p></p><p class=MsoNormal>#(239 187 191)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>If I use (babel:octets-to-string foo) on a byte array with BOM markers, then my SBCL Lisp image dies.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Is there a better way to ask Babel to discover the correct encoding by looking for Byte Order Marks? Ideally I’d like one function call that worked with any array and figured out which encoding was being used automatically and works whether or not a BOM is present?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sorry if I'm missing something obvious, I'm a Babel newbie .. Any guidance or code samples gratefully received.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Rob.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>