Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

python - Sự cố khi lưu ký tự Unicode sang MySQL với Django

Cảm ơn tất cả những người đã đăng bài ở đây. Nó thực sự giúp ích cho kiến ​​thức unicode của tôi (và rất may những người khác đã học được điều gì đó).

Dường như tất cả chúng tôi đều trồng nhầm cây vì tôi đã cố gắng đơn giản hóa vấn đề của mình và không cung cấp TẤT CẢ thông tin. Có vẻ như tôi đã không sử dụng chuỗi unicode "REAL", mà là BeautifulSoup.NavigableString tự repr dưới dạng chuỗi unicode. Vì vậy, tất cả các bản in trông giống như unicode, nhưng chúng không giống như vậy.

Ở đâu đó sâu trong thư viện MySQLDB, họ không thể xử lý các chuỗi này.

Điều này đã hoạt động:

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

Mặt khác:

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

Nhưng điều này hoạt động:

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

Vì vậy, một lần nữa, cảm ơn tất cả sự trợ giúp của unicode, tôi chắc chắn rằng nó sẽ rất hữu ích. Nhưng hiện tại ...

CẢNH BÁO :BeautifulSoup không trả lại REAL chuỗi unicode và phải được ép buộc bằng unicode () trước khi làm bất cứ điều gì có ý nghĩa với chúng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các ký tự unicode của MySQL

  2. Canonical Function EntityFunctions.TruncateTime không tồn tại trong MYSQL

  3. MySQL - Kết hợp CHÈN, GIÁ TRỊ và CHỌN?

  4. 2 cách chuyển đổi giữa hệ thập phân và hệ thập lục phân trong MySQL

  5. Vòng lặp MySQL qua các bảng