[cffi-devel] utf-16

Helmut Eller heller at common-lisp.net
Tue Jun 1 06:51:12 UTC 2010


* Luís Oliveira [2010-05-31 20:57+0200] writes:

> On Mon, May 31, 2010 at 1:32 PM, Helmut Eller <heller at common-lisp.net> wrote:
>> Is this assertion
>>
>> (assert
>>  (equal
>>  (cffi:with-foreign-string (data "foobar" :encoding :utf-16)
>>    (cffi:foreign-string-to-lisp data :count 6 :encoding :utf-16))
>>  "foobar"))
>>
>> expected to fail?
>
> FOREIGN-STRING-ALLOC currently doesn't insert BOM markers and the
> :UTF-16 encoder uses native endianness. The :UTF-16 decoder defaults
> to big endian when a BOM marker is not present, as recommended by the
> Unicode specification. That's why the assertion fails.
>
> One solution is to use :UTF-16BE or :UTF-16LE explicitly, which
> unfortunately aren't implemented in Babel yet.

Thanks. I will write my on decoder then. 

Helmut





More information about the cffi-devel mailing list