sql >> Database >  >> RDS >> PostgreSQL

Unicode-normalisatie in Postgres

Ik denk dat dit een Pg-bug is.

Naar mijn mening zou PostgreSQL utf-8 moeten normaliseren in een vooraf samengestelde vorm voordat coderingsconversies worden uitgevoerd. Het resultaat van de weergegeven conversies is onjuist.

Ik zal het verhogen op pgsql-bugs ... klaar.

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

Je zou de draad daar moeten kunnen volgen.

Bewerken :pgsql-hackers lijken het er niet mee eens te zijn, dus het is onwaarschijnlijk dat dit snel zal veranderen. Ik raad u ten zeerste aan om uw UTF-8 te normaliseren op de invoergrenzen van uw toepassing.

Tussen haakjes, dit kan worden vereenvoudigd tot:

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

dat is gewoon gekke praat, maar is toegestaan. De eerste is voorgecomponeerd, de tweede niet. (Om dit resultaat te zien, moet je kopiëren en plakken, en het werkt alleen als je browser of terminal utf-8 niet normaliseert).

Als u Firefox gebruikt, ziet u het bovenstaande mogelijk niet correct; Chrome geeft het correct weer. Dit is wat u zou moeten zien als uw browser de ontlede Unicode correct verwerkt:




  1. Unity3D-verbinding met MySQL-fout

  2. PostgreSQL-taakverdeling in de cloud gemakkelijk gemaakt

  3. SQL-query om kolomgegevens in rijen te splitsen

  4. Oracle datapomp impdp naar externe server