Hi, With this code:
(let ((p (open-output-file "x.txt"))) (set-port-encoding! p "UTF16") (display "ABC" p) (close-port p)) the sequence of bytes in the output file x.txt is ['FF', 'FE', '41', '0', 'FF', 'FE', '42', '0', 'FF', 'FE', '43', '0'] FFE is a little-endian Byte Order Mark (BOM), fine. But why is Guile adding it before every character instead of just at the beginning of the string? Is that expected? This is a curiosity question; since what I want is big endian, I just used "UTF16BE", which outputs big endian, and doesn't add the BOM -- I can then just add a BOM manually. Still, I'm puzzled by this behavior. Thanks, Jean