Portál AbcLinuxu, 14. května 2025 05:24
Počínaje 8.4 je v pg kontrola, zda-li locales odpovídá kódování. Častou chybou v nižších verzích bylo, že uživatel si nainstaloval např locale latin2 a kódování UTF8 - což samozřejmě nemůže fungovat. U Vás je default locales Czech_Czech Republic.1250, tudíž defacto byste měl použít pouze kódování Win1250. Jak je to s UTF, přiznám se, že nevím.
Pokud je mi známo, tak na Win locales Latin2 není, takže jej používat ani nemůžete - PostgreSQL je závislá na systémové podpoře. Další problém může být v pgAdminu. Může jít o bug. Zkuste z konzole psql se podívat na parametry příkazu CREATE DATABASE tj \h CREATE DATABASE a pak tento příkaz zkusit z konzole.
Je nejaky duvod pouzivat prave LATIN2? Konverzni funkce by mely zkonvertovat data do spravneho kodovani. Dulezite je mit nastavene spravne client encoding. Podivejte se sem www.postgresql.org/docs/current/static/multibyte.html
Tím jste nic nevyřešil - zkuste si SELECT upper("příliš žluťoučký kůň se napil žluté vody") nebo ORDER BY.
Pokud Vám nezáleží na podpoře kódování, pak doporučuji C kódování - nebo ANSI, při nich se řadí dle ANSI, což je relativně o dost rychlejší než dle locale.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.