Tak til alle, der har skrevet her. Det hjælper virkelig på min unicode-viden (og meget har andre mennesker lært noget).
Det så ud til, at vi alle gøede op i det forkerte træ, da jeg prøvede at forenkle mit problem og ikke gav ALLE oplysninger. Det ser ud til, at jeg ikke brugte "RIGTIGE" unicode-strenge, men derimod BeautifulSoup.NavigableString, som repræsenterer sig selv som unicode-strenge. Så alle udskrifterne lignede unicode, men det var de ikke.
Et eller andet sted dybt i MySQLDB-biblioteket kunne de ikke håndtere disse strenge.
Dette virkede :
>>> Achievement.objects.get(name = u"Mirror's Edge\u2122")
<Achievement: Mirror's Edge™>
På den anden side :
>>> b = BeautifulSoup(u"<span>Mirror's Edge\u2122</span>").span.string
>>> Achievement.objects.get(name = b)
... Exceptoins ...
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2122' in position 13: ordinal not in range(128)
Men dette virker :
>>> Achievement.objects.get(name = unicode(b))
<Achievement: Mirror's Edge™>
Så tak igen for al unicode-hjælpen, jeg er sikker på, at det vil komme til nytte. Men indtil videre ...
ADVARSEL :BeautifulSoup returnerer ikke RIGTIG unicode-strenge og bør tvinges med unicode(), før du gør noget meningsfuldt med dem.