How to have file names with non-ASCII characters in M3U playlists on a Sansa Clip MP3?

The problem: you can have file names with special characters in them on your Sansa Clip player, and also play them if they are MP3 files etc.. But you can play them only directly with the player’s functionality, while referencing them in playlists does not work.

First of all, get and install the latest firmware for the Sansa Clip MP3 player. You can find installation instructions and the firmware itself here. These instructions apply to Firmware 02.01.32. You can find that out in “Settings -> System information”. By the way, the exat type number of the player is “BI0810BIIK-8GB” (printed to its bottom).

First problem: Getting the filenames right

The Sansa Clip seems to interpret filenames within the charset that belongs to the language you use. For example, it uses the ISO 8859-1 charset when you use German as the language. This is visible in the playlist names when scrolling through the list of playlists. German umlauts appear there correctly if the filename contains them.

Now it is a first problem (at least when using Linux and having bash use UTF-8 filenames by default) to get the filenames right. If you have Linux, and your bash creates UTF-8 filenames by default, you can use this approach to convert the UTF-8 filenames to ISO 8859-1 ones (or whatever encoding you need):

for file in *; do
  mv "$file" "$(echo $file | recode "UTF-8..ISO-8859-1")";
done;

Note that, what also works for creating new files is creating them with an ISO 8859-1 encoded bash script file. Note also: when writing files to the file system in UTF-8, the files can be played, but the file names are not shown correctly.

Second problem: Getting the playlists right

Now, interesting enough, the Sansa Clip does not interpret M3U playlists with the same charset as it does interpret the file names. This is simplest to be demonstrated by creating a demo playlist (referring to an existing file with just ASCII characters in path and filename) and using special characters in the “display name” in the #EXTINF lines of the playlist (see here). Oh and yes, here is how to create M3U playlists if you are on Linux. The effect is, Chinese characters were displayed instead of German umlauts, using a M3U playlist in ISO 8859-1 encoding.

That’s because the Sansa Clip expects M3U playlists to be UTF-8 encoded. Provide this, and everything works fine.

Note: To be able to create playlists with easytag and create files as a user, mount it in a way that normal users can write to it. For example by using this instruction: sudo mount -o uid=myusername /dev/sdb /media/misc/.

Note: Take care; if your playlist contains entries to non-existing files, they will not be displayed when browsing the playlist on the player, but when scrolling down further through the entries folloing the first non-found entry, scrolling is incredibly slow (about 1 song per second). Also, when you have really much playlist entries that refer to missing files, opening the playlist will take really long. If for example a playlist of 1000 entries is opened, and all entries refer to non-existing files, the Sansa Clip seems to be “crashed” as it does not react to anything then except forcing switch-off by holding up the switch-off switch for 4 seconds. The normal case is that a 1000 entry playlist opens in 1 second.

What did not help with this problem:

  • Calling this command: CHARSET="ISO-8859-1" bash; After that, file names are still shown with UTF-8 characters correctly displayed, and with non-ASCII characters in ISO-8859-1 encoded filenames replaced by “?”. Also, newly created filenames are still created in UTF-8.
  • Calling sudo mount -o uid=matthias -o iocharset=iso8859-1 /dev/sdb /media/misc/ or the same with iso8859-15. This only tells the system how to interpret non-ASCII characters in 8.3 filenames, while today, always the FAT long filenames are displayed. Which are always created with UTF-8 encoding, regardless of the iocharset setting. See “man mount” for that. It
    seems that file names are created in UTF-8 anyway, regardless of the iocharset setting. But they are marked as being encoded in the iocharset setting, so when mounting next time with another such setting, each appears as “??” (for a UTF-8 character, being tw bytes). This applies to filenames within and without the 8.3 naming schema.
  • Playing around with “export LANG=[...]“.
  • dpkg-reconfigure locale” might work, but affects the whole system.


Posted

in

,

by

Tags:

Comments

One response to “How to have file names with non-ASCII characters in M3U playlists on a Sansa Clip MP3?”

  1. Chris G

    I have a sansa clip and i LOVE it, but… the playlists on the computer lie. i press ok to confirm the play list and that’s what it has on every single playlist. then if i press ok on anything else it’s the same problem. i want to be able to have multiple play lists and i can’t be cuase of this. Any advice???

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.