Re: Čeština PostgreSQL, PHP, RH6.2cz

Jiri Lisicky lisicky na datis.cdrail.cz
Čtvrtek Červen 7 09:27:02 CEST 2001


On Thu, 7 Jun 2001 08:59:17 +0200, you wrote:

>Zdravím,
>rád bych se nesměle zeptal, zda-li se někomu z Vás podařilo narazit 
>na stejný problém jako já. Pokusím se to popsat. Stručně řečeno jde o 
>špatnou interpretaci písmene "žŽ" - (z s háčkem, malé i velké) v 
>sytému databázové WWW aplikace - Windows - RedHat 6.2cz. Dotaz z WWW 
>browseru IE5 -> php 4.0.5 -> SQL databáze PostgreSQL 7.1.1(databáze v 
>LATIN2) -> php 4.0.5  -> WWW browser.  Samozřejmostí je konverze 
>win1250-iso8859-2 příkazem set client encoding='win1250' na začátku 
>SQL příkazů SELECT. Zjednodušeně, příkazem SELECT nevybere jméno jako 
>například moje: "Žáček". Stejný dotaz přímo z terminálu je O.K. a 
>překódovaný zápis (LATIN2) v databázi je taky v pořádku, např 
>"?áček".  Zajímavé je, že ostatní písmena s diakritikou příkaz SELECT 
>bere bez problémů. Používám standardní RPM stažené z PostgreSQL.org a 
>vlastní kompilaci php 4.0.5 ze zdrojáků. Tato "věc" se mi stávala i 
>pod nižšími verzemi programů PostgreSQL a php standardně přítomných v 
>distribuci RH 6.2, ale ani upgrade nepomohl. Tuší, že zakopaný pes by 
>mohl být v nějakém nastavení pro kompilaci a nebo je to chybka php.
>
>Diky za nakopnutí správným směrem.

Nevím co z toho co tu napíšu víte nebo ne, takže to vezmu
polopatisticky.

Windowsy a unixy používají kódování win-1250 a iso-8859-2, ty se
pro češtinu liší ve třech(šesti) písmenech žšť (ŽŠŤ). Může se tedy
stát, že se nepřekódovává vůbec nic. Vám se potom zdá, že je vše v
pořádku, dokud se tam neobjeví jeden z těch výše jmenovaných znaků.

Já bych ale spíš řekl, že z postgresql to vyberete ve windovs-1250
kódování. Pomocí php sestavíte stránku. Apache to pak pošle klientovi
a v hlavičkách mu pošle, že stránka je v kódování iso-8859-2.

Myslím si, že nejjednodušší je mít na Linuxu všechno v iso-8859-2 a
nechat www klienta ať si to překóduje sám. Každý moderní klient tohle
umí. Tedy až na Operu, která se této vlastnosti zatím úspěšně vyhýbá.
Doufám, že je to jen otázka času (blízkého), kdy se to už konečně
naučí.
--
        Jiří Lisický                      ČD KMŽP Olomouc
e-mail: lisicky na datis.cdrail.cz           Vídeňská 15
 phone: +420-068-472-2272                 Olomouc, Czech Republic
              >>> čeština ISO-8859-2 Compatible <<<


Další informace o konferenci Redhat-cz