PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak mogę sprawdzić ciąg znaków Unicode w Pythonie, aby zobaczyć, że *w rzeczywistości* jest prawidłowym kodem Unicode?

Wystąpił błąd w pythonie 2.x, który jest tylko naprawiony python 3.x. W rzeczywistości ten błąd występuje nawet w iconv OS X (ale nie w glibc).

Oto, co się dzieje:

Python 2.x nie rozpoznaje par zastępczych UTF8 [1] jako niepoprawnych (takich jest twoja sekwencja znaków)

To powinno być wszystkim, co jest potrzebne:

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

Ale dzięki temu błędowi, którego nie naprawiają, nie wyłapuje par zastępczych.

Wypróbuj to w Pythonie 2.x, a następnie w 3.x:

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

Spowoduje to błąd (poprawnie) w tym drugim. Nie naprawiają tego również w gałęzi 2.x. Zobacz [2] i [3], aby uzyskać więcej informacji

[1] https://www.rfc-editor.org/rfc/ rfc3629#sekcja-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. Zastępowanie tekstu dopasowanego do wyrażenia regularnego wersją wielkimi literami w Postgresql

  2. Jak zaimportować duży plik XML (~10 GB) do PostgreSQL

  3. Pokaż ostatnią wiadomość w tablicy wiadomości

  4. Jak wyodrębnić rok i miesiąc od daty w PostgreSQL bez użycia funkcji to_char()?

  5. Więc zainstalowałem port postgresql i localhost powodujący konflikt z aplikacją ruby?