Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

python — Masalah menyimpan karakter Unicode ke MySQL dengan Django

Terima kasih kepada semua orang yang memposting di sini. Ini sangat membantu pengetahuan unicode saya (dan semoga orang lain belajar sesuatu).

Kami sepertinya menggonggong pohon yang salah karena saya mencoba menyederhanakan masalah saya dan tidak memberikan SEMUA informasi. Tampaknya saya tidak menggunakan string unicode "NYATA", melainkan BeautifulSoup.NavigableString yang menyatakan dirinya sebagai string unicode. Jadi semua cetakan tampak seperti unicode, padahal tidak.

Di suatu tempat jauh di dalam perpustakaan MySQLDB mereka tidak dapat menangani string ini.

Ini berhasil :

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

Sebaliknya :

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

Tapi ini berhasil :

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

Jadi, sekali lagi terima kasih atas semua bantuan unicode, saya yakin itu akan berguna. Tapi untuk saat ini ...

PERINGATAN :BeautifulSoup tidak mengembalikan NYATA string unicode dan harus dipaksa dengan unicode() sebelum melakukan sesuatu yang berarti dengannya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Praktik terbaik untuk URL dengan spasi dan karakter khusus

  2. Beberapa Pembaruan di MySQL

  3. Mengganti nama kolom kunci asing di MySQL

  4. Kurangi bulan dan hari mysql

  5. Mysql, bentuk ulang data dari panjang / tinggi ke lebar