Autor Zpráva
MG
Profil *
dobrý den, mám problém s Coppermine gallery, všechno funguje normálně, správně mi to jede v češtině, ale protože používám popisy k foto v metadatech přímo v obrázcích (IPTC Description), Coppermine mi tyto popisky vypisuje nesprávně (č,š, a pod.) nahrazuje různými jinými znaky nebo je vůbec nezobrazuje. Podle mě je potřeba nějaké úpravy v PHP scriptech již při načítání dat z EXIF a IPTC před jejich exportem do databáze. Dík za každou informaci.
Ahoj M.G.
nightfish
Profil
MG
ano, je potřeba zjistit, v jakém kódování jsou znaky v EXIFu a IPTC kódovány a před uložením do databáze je vhodně překódovat
marmulak
Profil *
Děkuji noční rybko,
děkuji za odpověď, podařilo se mi zjistit, že kódování v EXIF by údajně mělo být údajně v Unicode, jenomže ten hlavní problém je, jak najít místo v PHP kde se to čte a předává do databáze, poté bych už možná sehnal někoho, kdo by to dokázal ošetřit. Možná za nějakou rozumnou odměnu ... ! Nejsem totiž programátor. Najde se někdo kto pomůže ??? :))
Dík
123@cbox.cz
MG.
nightfish
Profil
marmulak
vypadá to, že IPTC se zpracovává v souboru include/iptc.inc.php

s copperminem jsem nikdy nedělal, nicméně předpokládám, že když se provede úprava v tomto souboru, tak by to mělo fungovat i ve zbytku aplikace...

teoreticky by mohlo stačit upravit funkci strip_IPTC() následovně (akorát do funkce iconv to chce zadat správně vstupní i výstupní kódování...)

function strip_IPTC($data) {

if (is_array($data)) {
foreach ($data as $key=>$item) {
$data[$key]=strip_IPTC($item);
$data[$key] = iconv("utf-8", "windows-1250", $data[$key]);
}
} else {
$data=htmlentities(strip_tags(trim($data,"\x7f..\xff\x0..\x1f")),ENT_Q UOTES); //sanitize data against sql/html injection; trim any nongraphical non-ASCII character:
}
return $data;
}
MG
Profil *
zatím dík zlatá rybko, pokud se to podaří realizovat, tak tě odměna určitě nemine... :))
s pozdravem MG.
MG
Profil *
Fakt si myslím, že je to na dobré cestě, protože některé zobrazované znaky se mění, jenomže jsem odzkoušel z windows-1250, 1251, 1252 a taky iso-8859-1, -2, -9 překódovat na utf-8 ("windows-1250", "utf-8") a stále tam lítá místo "ěščřžýáíéúůľäô" něco jako "ìšèøžýáíéúù¾äô" a nevím jaké kódování bych mohl ještě zkusit. Kdysi dávno jsem někde viděl tabulku, kde se dalo zjistit podle toho, jak se nahrazují znaky jaký je to charset. Jó, mysql tabulka je v UTF-8 unicode-ci. Pokud bys ještě věděl, co zkusit, fakt bych byl rád. Zatím s pozdravem MG.
JiHo
Profil *
Nejsem si jistý, jestli tohle je řešení tvého problému, ale pokud používáš MySQL verze vyšší než tuším 4.10, tak po provedení mysql_select_db(...); ještě musíš přidat příkaz mysql_query("set names cp1250"); (nebo tu znakovou sadu, kterou doopravdy používáš), jinak se ukládají do databáze (i čtou) nesmysly. V Coppermine je to na několika místech, takže vyhledat a přidat. Teď to testuji a vypadá to funkčně.
Kdyby něco, napiš na jiho(zavináč)jitrnizeme.cz.
JiHo
Profil *
Takže hotovo,

už to funguje OK a importuje to češtinu i slovenštinu správně. Výsledek je možné vidět tady:

http://galerie.jitrnizeme.cz/thumbnails.php?album=3

Galerie jede na MySQL 5, PHP 4, kódování win-1250.

Úprava se týkala výše uvedeného, plus úpravy samotného souboru iptc.inc.php.

V případě zájmu pošlu.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0