Slovenski jezik, uncode in postgresql

Gregor GORJANC gregor.gorjanc at bfro.uni-lj.si
Fri Aug 13 15:31:53 CEST 2004


Zdravo!

V postgresql sem si želel urediti vnos in prikaz ter razvrščanje s podoporo 
za šumnike. Želim unicode. Imam debian unstable in postgresql 7.4.3-3.

Pri namestitvi sem za backend encoding vzel sl_SI.utf-8 (probal tudi z 
sl_SI). Nato pa za character encoding Unicode.

Celoten locale imam nastavljen na sl_SI.utf8

S spodnjim ukazom lahko pogledam kako se obnaša backend:

root at pc303:/var/lib/postgres# pg_controldata /var/lib/postgres/data/
pg_control version number:            72
Catalog version number:               200310211
Database cluster state:               shut down
pg_control last modified:             Fri Aug 13 15:19:16 2004
Current log file ID:                  0
Next log file segment:                1
Latest checkpoint location:           0/9B1058
Prior checkpoint location:            0/9AA680
Latest checkpoint's REDO location:    0/9B1058
Latest checkpoint's UNDO location:    0/0
Latest checkpoint's StartUpID:        12
Latest checkpoint's NextXID:          536
Latest checkpoint's NextOID:          17142
Time of latest checkpoint:            Fri Aug 13 15:19:16 2004
Database block size:                  8192
Blocks per segment of large relation: 131072
Maximum length of identifiers:        64
Maximum number of function arguments: 32
Date/time type storage:               64-bit integers
Maximum length of locale name:        128
LC_COLLATE:                           sl_SI.utf-8
LC_CTYPE:                             sl_SI.utf-8
                                        --> OK tole bi moglo delati

Če skreiram novo bazo s spodnjim ukazom, mi naredi kodno tabelo zanjo v 
LATIN2 in ne UNICODE
createdb ggorjan

ggorjan=# \l
        Seznam podatkovnih baz
     Ime    | Lastnik  | Kodna tabela
-----------+----------+--------------
  ggorjan   | ggorjan  | LATIN2
  template0 | postgres | LATIN2
  template1 | postgres | LATIN2
(3 vrstic)

Če nujno zahtevam unicode, moram uporabiti spodnje, kar še niti ni takšen 
problem.
createdb --encoding unicode ggorjan

        Seznam podatkovnih baz
     Ime    | Lastnik  | Kodna tabela
-----------+----------+--------------
  ggorjan   | ggorjan  | UNICODE
  template0 | postgres | LATIN2
  template1 | postgres | LATIN2
(3 vrstic)

Ampak v bazi mi pa ne razvršča pravilno glede na znake v naši abecedi.
Ko še enkrat preverim backend, vidim, da se je locale za LC_COLLATE
in LC_CTYPE spremenil v C.

root at pc303:/var/lib/postgres# pg_controldata /var/lib/postgres/data/
pg_control version number:            72
Catalog version number:               200310211
Database cluster state:               in production
pg_control last modified:             Fri Aug 13 15:22:00 2004
Current log file ID:                  0
Next log file segment:                1
Latest checkpoint location:           0/B62F14
Prior checkpoint location:            0/B3F61C
Latest checkpoint's REDO location:    0/B62F14
Latest checkpoint's UNDO location:    0/0
Latest checkpoint's StartUpID:        47
Latest checkpoint's NextXID:          61234
Latest checkpoint's NextOID:          25530
Time of latest checkpoint:            Fri Aug 13 15:21:58 2004
Database block size:                  8192
Blocks per segment of large relation: 131072
Maximum length of identifiers:        64
Maximum number of function arguments: 32
Date/time type storage:               64-bit integers
Maximum length of locale name:        128
LC_COLLATE:                           C
LC_CTYPE:                             C


Ima kdo kakšne izkušne s tem? Ali komu drugače zadeva deluje? Kako je pa 
kaj z latin2?

-- 
Lep pozdrav / With regards,
     Gregor GORJANC




More information about the lugos-slo mailing list