Tôi đang cố gắng lưu nhận xét từ ứng dụng iPhone có thể và ngày nay rất có thể là sẽ bao gồm biểu tượng cảm xúc. Không có vấn đề gì tôi làm, tôi không thể lưu các biểu tượng cảm xúc vào cơ sở dữ liệu MySQL ... Lỗi Unicode liên tục.Biểu tượng cảm xúc từ iPhone sang Python/Django
- Python 2.6.5
- Django 1.2.1
- cơ sở dữ liệu MySQL (thiết lập để bộ ký tự utf8 cho các bảng và các hàng)
- Cứu dữ liệu đến một VARCHAR (255) lĩnh vực
Lỗi mà tôi tiếp tục nhận được là:
Incorrect string value: '\xF0\x9F\x97\xBC \xF0...' for column 'body' at row 1
strin g tôi đi vào cơ sở dữ liệu là:
test_txt = u"Emoji - \U0001f5fc \U0001f60c \U0001f47b ...".encode('utf-8')
Cập nhật: Đây là mô hình tôi đang sử dụng:
class ItemComment(db.Model):
item = db.ForeignKey(Item)
user = db.ForeignKey(Profile)
body = db.CharField(max_length=255, blank=True, null=True)
active = db.BooleanField(default=True)
date_added = db.DateTimeField(auto_now_add=True)
def __unicode__(self):
return "%s" % (self.item)
Điều kỳ lạ là, nếu tôi cố gắng và chuyển thông tin này đến một lĩnh vực mà tôi đã tạo ra trong MySQL và không phải Django models.py nó hoạt động tốt. Nhưng ngay sau khi tôi đăng ký các lĩnh vực trong mô hình Django nó chết. Có cách nào khác để lưu trữ những điều này?
Mọi ý tưởng sẽ thật tuyệt vời.
tôi không thể gặp khó khăn hơn về vấn đề này ...
Cập nhật 2: Theo dõi nó trong Terminal sử dụng câu lệnh sau CẬP NHẬT (chú ý U0001f5fc)
UPDATE 'table' SET 'body' = '', WHERE 'table'.'id' = 1 ; args=(u'\U0001f5fc')
Sử dụng như Hardcore như tôi có thể nhận được để vượt qua giá trị:
force_unicode(smart_str(value), encoding='utf-8', strings_only=False, errors='ignore')
Nhưng lỗi vẫn ném:
_mysql_exceptions.Warning: Incorrect string value: '\xF0\x9F\x97\xBC' for column 'body' at row 1
Hoàn toàn mất!
Chúc mừng,
Có thể bạn cung cấp mô hình của bạn? – bossylobster
@ bossylobster, chúc mừng, vừa thêm mô hình vào bản sao ở trên. –
Kiểm tra http://stackoverflow.com/questions/2108824/mysql-incorrect-string-value-error-when-save-unicode-string-in-django, vì bạn nói nó hoạt động tốt trong MySQL Tôi nghi ngờ điều này sẽ hy vọng , nhưng nó đáng để thử. – bossylobster