Mysql
 sql >> база данни >  >> RDS >> Mysql

python - Проблем със съхраняването на Unicode символ в MySQL с Django

Благодаря на всички, които публикуваха тук. Това наистина помага на знанията ми за unicode (и, надявам се, други хора научиха нещо).

Изглежда, че всички лаем на грешното дърво, тъй като се опитах да опростя проблема си и не дадох ВСЯКА информация. Изглежда, че не използвах "REAL" unicode низове, а по-скоро BeautifulSoup.NavigableString, които се възпроизвеждат като unicode низове. Така че всички разпечатки изглеждаха като unicode, но не бяха.

Някъде дълбоко в библиотеката на MySQLDB те не можеха да се справят с тези низове.

Това работи :

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

От друга страна :

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

Но това работи :

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

Така че, отново благодаря за цялата помощ за unicode, сигурен съм, че ще бъде полезна. Но засега...

ПРЕДУПРЕЖДЕНИЕ :BeautifulSoup не връща REAL unicode низове и трябва да бъдат принудени с unicode(), преди да направите нещо смислено с тях.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проблем с външния ключ при миграция на Laravel

  2. Как да проверите дали дадена стойност вече съществува, за да избегнете дублиране?

  3. Коя версия е моят MySQL сървър?

  4. Изберете всички дублиращи се редове въз основа на една или две колони?

  5. Как да премахнете напълно MySQL с конфигурационни и библиотечни файлове?