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

Làm cách nào để kiểm tra một chuỗi unicode Python để xem nó * thực sự * có phải là Unicode thích hợp không?

Có một lỗi trong python 2.x chỉ được cố định python 3.x. Trên thực tế, lỗi này thậm chí có trong iconv của OS X (nhưng không phải lỗi glibc).

Đây là những gì đang xảy ra:

Python 2.x không nhận ra các cặp thay thế UTF8 [1] là không hợp lệ (đó là chuỗi ký tự của bạn)

Điều này nên là tất cả những gì cần thiết:

foo.decode('utf8').encode('utf8')

Nhưng nhờ lỗi đó mà họ không sửa, nó không bắt các cặp thay thế.

Hãy thử điều này trong python 2.x và sau đó trong 3.x:

b'\xed\xbd\xbf'.decode('utf8')

Nó sẽ tạo ra một lỗi (chính xác) trong phần sau. Họ cũng không sửa nó trong nhánh 2.x. Xem [2] và [3] để biết thêm thông tin

[1] https://www.rfc-editor.org/rfc/ rfc3629 # section-4

[2] http://bugs.python.org/issue9133

[3] http://bugs.python.org/issue8271#msg102209



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ValueError:Không thể truyền DatetimeIndex thành dtype datetime64 [us]

  2. Yii Framework:Không thể tìm thấy bảng cho lớp bản ghi đang hoạt động trong cơ sở dữ liệu

  3. PostgreSQL - Đổi tên cơ sở dữ liệu

  4. Mục tiêu thời gian khôi phục Pgbackrest

  5. NLog đến kết nối PostgreSQL