PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana saya bisa memeriksa string unicode Python untuk melihat bahwa itu *sebenarnya* adalah Unicode yang tepat?

Ada bug di python 2.x itu hanya memperbaiki python 3.x. Faktanya, bug ini bahkan ada di iconv OS X (tetapi bukan yang glibc).

Inilah yang terjadi:

Python 2.x tidak mengenali pasangan pengganti UTF8 [1] sebagai tidak valid (yang merupakan urutan karakter Anda)

Ini harus menjadi semua yang dibutuhkan:

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

Namun berkat bug yang tidak mereka perbaiki, itu tidak menangkap pasangan pengganti.

Coba ini di python 2.x dan kemudian di 3.x:

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

Ini akan menimbulkan kesalahan (dengan benar) di yang terakhir. Mereka juga tidak memperbaikinya di cabang 2.x. Lihat [2] dan [3] untuk info lebih lanjut

[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. Gunakan \copy psql untuk kueri multi-baris

  2. Memahami ukuran baris Postgres

  3. Menyimpan output dari kueri dinamis yang menggunakan refcursor ke dalam tabel

  4. PostgreSQL - ubah ID baris tabel dengan benar

  5. Mengapa koneksi ke server Postgres saya di Azure gagal jika aplikasi saya tidak mengaktifkan SSL?