sql >> Databáze >  >> RDS >> PostgreSQL

Normalizace Unicode v Postgresu

Myslím, že se jedná o chybu Pg.

Podle mého názoru by měl PostgreSQL před provedením převodů kódování normalizovat utf-8 do předem složené podoby. Výsledek zobrazených konverzí je nesprávný.

Uvedu to na pgsql-bugs ... hotovo.

http://www.postgresql.org/message-id/example @sqldat.com

Tam byste měli mít možnost sledovat vlákno.

Upravit :pgsql-hackers s tím zřejmě nesouhlasí, takže je nepravděpodobné, že se to rychle změní. Důrazně vám doporučuji normalizovat UTF-8 na vstupních hranicích vaší aplikace.

BTW, lze to zjednodušit na:

regress=> SELECT 'á' = 'á';
 ?column? 
----------
 f
(1 row)

což je obyčejná bláznivá řeč, ale je povolená. První je předem složený, druhý nikoli. (Abyste viděli tento výsledek, musíte jej zkopírovat a vložit a bude fungovat pouze v případě, že váš prohlížeč nebo terminál nenormalizují utf-8).

Pokud používáte Firefox, možná se vám výše uvedené nezobrazuje správně; Chrome to vykresluje správně. Zde je to, co byste měli vidět, pokud váš prohlížeč správně zpracovává rozložený kód Unicode:




  1. Python odkazující na připojení k databázi na jiném skriptu

  2. Rekurzivní dotaz v Oracle

  3. Jak stáhnout osolené heslo z databáze a auth uživatele?

  4. Jak připojit programy C++ k MariaDB