Unicode Latin1 -> UTF-8 support
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Exaile |
Incomplete
|
Medium
|
Exaile Bug Day Events |
Bug Description
I have not had the time to narrow down where exactly everything dies, but there needs to be some kind of wrapper system to ensure that everything that is written to sqlite and later retrieved is UTF-8. Currently, it handles some unicode but cannot convert Latin1 to UTF-8.
This occurs while scanning directories for files, while storing tag data, and when retrieving songs from the DB. It seems to be a real showstopper, because sqlite supports only UTF-8.
I'm afraid I won't have more time to play with this for now, so I'm posting a ticket in hopes that someone else will get around to it. I suggest either refactoring the database inserts a little, so you can add some latin1->utf8 decode/encode logic before inserts or maybe play with something similar to:
{{{
db.text_factory = lambda x: unicode(x, "utf-8", "replace")
}}}
Same goes for file scanning:
{{{
xl/tracks.py
for file in to_scan:
try:
+ file = unicode(
+ #file = unicode(
except UnicodeDecodeError:
}}}
This ticket was migrated from the old trac: re #79
Changed in exaile: | |
importance: | Undecided → Medium |
status: | New → Confirmed |
Changed in exaile: | |
status: | Confirmed → Incomplete |
Changed in exaile: | |
assignee: | nobody → Exaile Bug Day Events (exaile-bugday) |
Any news from this ?
I have filenames which have strange encodings. I guess something is wrong with them and I should fix this. But all previous player I used can still use them. Exaile fails to import them and stops, which is very anoying.