Mysql
 sql >> Baza danych >  >> RDS >> Mysql

python - Problem z przechowywaniem znaków Unicode w MySQL za pomocą Django

Dziękuję wszystkim, którzy tu publikowali. To naprawdę pomaga mojej wiedzy o Unicode (i mam nadzieję, że inni ludzie się czegoś nauczyli).

Wydawało się, że wszyscy szczekamy na złe drzewo, ponieważ próbowałem uprościć swój problem i nie podałem WSZYSTKICH informacji. Wygląda na to, że nie używałem "PRAWDZIWYCH" ciągów Unicode, ale raczej BeautifulSoup.NavigableString, które same reprezentują się jako ciągi Unicode. Więc wszystkie wydruki wyglądały jak Unicode, ale tak nie było.

Gdzieś głęboko w bibliotece MySQLDB nie mogli poradzić sobie z tymi łańcuchami.

To zadziałało :

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

Z drugiej strony :

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

Ale to działa :

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

Więc jeszcze raz dziękuję za całą pomoc unicode, jestem pewien, że się przyda. Ale na razie...

OSTRZEŻENIE :BeautifulSoup nie zwraca PRAWDZIWEJ Unicode stringi i powinny być wymuszone przez unicode() zanim zrobisz z nimi cokolwiek sensownego.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę przekonwertować plik MDB (Access) na MySQL (lub zwykły plik SQL)?

  2. Zapytanie MySql do wybrania rekordów z konkretną datą

  3. Funkcja MySQL TAN() – zwraca tangens wartości w MySQL

  4. Jak zarządzać bazami danych za pomocą phpMyAdmin

  5. Komunikat o błędzie:Wyjątek w głównym wątku org.hibernate.HibernateException:Błąd dostępu do strumienia stax