Vedu si v programu Ant Movie Catalog databázi všech vlastněných filmů, tento program pracuje se svým proprietárním formátem .amc a umožňuje export do mnoha formátu. Už léta mám seznam filmů na internetu, aby se mi lépe hledalo v katalogu, abych jeden film neměl zbytečně vícekrát a otevírat tento program pokaždé se mi nechce. Program je to výborný a já ještě nenašel nějakou jeho alternativu pro linux – je windows-only, ale pod linuxem naštěstí běží pod wine.

K těm peripetiím, seznam jsem si dosud dával na internet pouze ve formátu HTML, tzn. po každé editaci databáze filmů jsem udělal pár exportů do HTML a ty dal na internet. Vše bylo v pohodě, já nastavil kódování v hlavičce HTML jako UTF-8 a čeština zde byla v pořádku. Toto řešení mě ale přestalo bavit, pořád exportovat do HTML a pořád ručně přepisovat mě již přestalo bavit. Rozhodl jsem se tedy pro zjednodušení tohoto procesu.

V první řadě mi padl do oka export do XML, našel jsem si návod na SimpleXML a v PHP jsem si tedy napsal pár řádků kódu, potud vše probíhalo bez problému. Ale jakmile jsem se PHP stránku snažil dostat na internet, čeština byla fuč a místo diakritiky jsem měl jen proprietární otazníčky. Soubor XML měl v hlavičce UTF-8 (program neumožňuje změnu tohoto kódování), stejné jsem tedy použil i pro PHP stránku, evidentně to však nestačilo a já přestal XML řešit.

Další mi padlo do oka SQL export, na serveru mi běží MySQL, takže by to mělo být jednoduché. Nechtělo se mi však všechno psát, kdo to zná, tak ví, že to je otravné a opakující se. Takže jsem si raději našel phpMyEdit a jen trošku upravil pro mé potřeby. Pomocí exportu jsem naplnil databázi příslušnými daty (UTF-8), v phpMyAdmin vše v pohodě, diakritika se zobrazovala. PHP soubory jsem převedl do formátu UTF-8, pro spojení s databází jsem nastavil též UTF-8. A ejhle, diakritika stejně nikde, tentokrát ani v samotném statickém HTML.

Začal jsem tedy čenichat problém. Po několika hodinovém hraní s kódováním databáze, jednotlivých PHP souborů a samotného SQL skriptu jsem trochu začal rezignovat. Na editaci souborů používám klasický gedit, tak jsem si řekl, že možná je chyba v něm. Zkusil jsem soubory upravit tedy v bluefish, vše nastaveno na UTF-8, ale diakritika stejně nikde – podařilo se mi dostat data ve statické stránce do čitelné podoby, ale v dynamické části jsem byl pořád neúspěšný. Tak jsem nakonec vydedukoval, že chyba je nejspíš již v samotném SQL skriptu. Zkusil jsem tedy tradiční linuxový iconv na všechny soubory, ale choval se nějak divn, pochybuju že vůbec změnil kódování a u jednoho souboru mi zmizel kompletně celý obsah souboru.

Posléze jsem zjistil, že program Ant Movie Catalog ve wine veškeré soubory exportuje v podivném formátu ISO-8859-1 a to je kámenem úrazu (což vysvětluje i moje dřívější peripetie se samotným .amc souborem). Ješteže mám nainstalovaný Windows jako virtuální počítač (právě pro tyto případy), v něm totiž ten samý program exportuje SQL ve znakové sadě ISO-8859-2. Do Windows jsem tedy nainstaloval i PSPad a upravil jednotlivé soubory znovu, stačilo jen oteřít a znovu uložit. Data znovu naplnil do databáze, soubory znovu zkopíroval na server a konečně po pár hodinách štvaní se s tím, jsem konečně dostal kýženou češtinu (diakritiku).

Ponaučení z toho plyne takové (alespoň pro mne), nespoléhat se na wine (nejspíš toto dělá i u jiných programů) a pokud chci výstupy dále zpracovávat, raději si je provést ve Windows. Bohužel v linuxu je podpora diakritiky malá (cokoliv kromě UTF-8 značí problémy) a v tomto směru mě mrzí i chování geditu, že nikde neumožňuje změnu kódování a sám soubor ukládá v uživateli neznámém kódování.

PS > Seznam není veřejný, slouží pouze pro mé účely!