sql >> Database >  >> RDS >> Mysql

python - Probleem bij het opslaan van Unicode-tekens in MySQL met Django

Bedankt aan iedereen die hier heeft gepost. Het helpt echt mijn Unicode-kennis (en hoeply hebben andere mensen iets geleerd).

We leken allemaal tegen de verkeerde boom te blaffen, omdat ik probeerde mijn probleem te vereenvoudigen en niet ALLE informatie gaf. Het lijkt erop dat ik geen "ECHTE" unicode-strings gebruikte, maar eerder BeautifulSoup.NavigableString die zichzelf als unicode-strings weergeven. Dus alle afdrukken leken op unicode, maar dat waren ze niet.

Ergens diep in de MySQLDB-bibliotheek konden ze deze strings niet aan.

Dit werkte :

>>> Achievement.objects.get(name = u"Mirror's Edge\u2122")
<Achievement: Mirror's Edge™>

Aan de andere kant:

>>> 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)

Maar dit werkt :

>>> Achievement.objects.get(name = unicode(b))
<Achievement: Mirror's Edge™>

Dus nogmaals bedankt voor alle unicode-hulp, ik weet zeker dat het van pas zal komen. Maar voor nu ...

WAARSCHUWING :BeautifulSoup retourneert niet ECHT unicode-tekenreeksen en moet worden afgedwongen met unicode() voordat u er iets zinvols mee doet.



  1. Hoe een exec-resultaat toe te wijzen aan een sql-variabele?

  2. Node.js mysql-transactie

  3. Hoe maak je een functie in PL/SQL?

  4. COUNT(*) van meerdere tabellen in MySQL