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

Flask_SQLAlchemy, MySQL, lưu trữ các ký tự Thụy Điển å, ä, ö?

Vì bạn đang sử dụng Python 2.7, bạn cần chỉ định rằng chuỗi của bạn chứa unicode.

>>> db.session.add(Users(u'ä'))

Bạn cũng có thể sử dụng phép nhập trong tương lai để coi tất cả các chuỗi là unicode.

from __future__ import unicode_literals

Ngoài ra, bạn có thể nâng cấp phiên bản Python của mình. 2.7 là phiên bản cuối cùng coi các chuỗi là byte thay vì unicode.

Chỉnh sửa

Bạn cũng sẽ cần cập nhật __repr__ của mình để nó xử lý đúng unicode.

def __repr__(self):
    return self.name.decode('utf-8')

hoặc bất kỳ bảng mã nào bạn muốn sử dụng.

Nói chung, bạn sẽ cần đảm bảo rằng bạn xử lý mã hóa từ và giải mã thành unicode. Tôi không thể thôi thúc bạn cân nhắc sử dụng phiên bản Python mới hơn. Một trong những thay đổi lớn nhất trong Python 3 giải quyết vấn đề này.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn SELECT này mất 180 giây để hoàn thành

  2. MySQL - Kết nối liên tục so với tổng hợp kết nối

  3. Cách có các giá trị thập phân chính xác mà không cần làm tròn trong MySQL

  4. Sự khác biệt giữa CHỌN VÀO VÀ CHÈN VÀO trong MySQL

  5. Hai khóa chính được chỉ định trong cơ sở dữ liệu MySQL