Collected from the forum:
* Write ISO-8859-1 tags instead of UFT-16
QUOTE
...ISO-8859-1 is a subset of Unicode (UTF-16 is a Unicode Transformation Format, which simply means that it's a way to encode Unicode characters). Unicode aims to encode all the characters in the world.
ISO-8859-1 contains characters mostly used in "Western" countries, so Asian, Arabic, Cyrillic, ... characters are missing.
* Write byte order marker (BOM) in all strings
QUOTE
WMP, Winamp, and dBPowerAMP, along with many, many players that support UTF-16 ID3v2 tags, don't like it if I include a byte order marker (BOM) in the string. (As the standard specifies.)
iPod (or is it iTunes?) requires it.
The specification also includes a means of indicating the endianness of the UTF-16 strings in the text encoding field, but one would gather from id3lib that this indicator is not used/supported. ID3lib ignores it, relying solely on the BOM.
Writing without BOM becomes confusing.
...
I've changed it to write little-endian Unicode strings when excluding the BOM. EDIT: And now it will write little-endian with BOM. Doesn't seem to fix dbpa reading, and it causes WMP to spit out this error: "Windows Media Player cannot find the specified file."