Using iconv to convert from UTF-16BE to UTF-8 without BOM

Edward Samson picture Edward Samson · Jul 20, 2012 · Viewed 9.5k times · Source

I'm trying to convert a UTF-16BE encoded file (byte order mark: 0xFE 0xFF) to UTF-8 using iconv like so:

iconv -f UTF-16BE -t UTF-8 myfile.txt

The resulting output, however, has the UTF-8 byte order mark (0xEF 0xBB 0xBF) and that is not what I need. Is there a way to tell iconv (or is there an equivalent encoding) to not put a BOM in the UTF-8 result?

Answer

Keith Thompson picture Keith Thompson · Jul 20, 2012

Experiment shows that indicating UTF-16 rather than UTF-16BE does what you want:

iconv -f UTF-16 -t UTF-8 myfile.txt