PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как мога да проверя уникод низ на Python, за да видя, че *всъщност* е правилен Unicode?

Има бъговената в python 2.x това е само фиксирано python 3.x. Всъщност този бъг е дори в iconv на OS X (но не и в glibc).

Ето какво се случва:

Python 2.x не разпознава заместващи двойки UTF8 [1] като невалидни (каквато е вашата последователност от знаци)

Това трябва бъде всичко, което е необходимо:

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

Но благодарение на тази грешка, която не коригират, тя не улавя сурогатни двойки.

Опитайте това в python 2.x и след това в 3.x:

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

Той ще изведе грешка (правилно) в последния. Те също не го поправят в клона 2.x. Вижте [2] и [3] за повече информация

[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. Заявката за търсене на Django Admin не достига индекса на Postgres

  2. Проблем с активно запитване за запис и heroku.

  3. 2 начина да получите размера на база данни в PostgreSQL

  4. вземете таблица JOIN като масив от резултати с PostgreSQL/NodeJS

  5. ruby миграцията е върната, но получава грешка при повторно стартиране на миграцията