Zdravím.
Mám problém. Data z databáze se zobrazují na webu češtinsky správně, ale v phpMyAdminu se místo písmen š a ž zobrazuje ? otazník.
Problém nastává, když chci zálohovat databázi a ve všech textech jsou š a ž nahrazeny otazníky, takže záloha není příliš použitelná.
Mé nastavení:
Language: Czech (cs-utf-8)
Znaková sada v MySQL: UTF-8 Unicode (utf8)
Znaková sada připojení k MySQL: utf8_general_czech
Nevíte prosím co s tím? Jak nastavit jazyk, aby se to v MyAdminu zobrazovalo správně?
Mnohokrát děkuji za případné odpovědi.
Klasická kolize znakových sad. Již se zde mnohokrát řešilo. Hledej SET NAMES.
No to SET NAMES asi řeší správný zápis nových dat do databáze.
Já bych ale potřeboval nějakých způsobem vytáhnout z phpMyAdmina již uložená data (je to celá diskuse, tudíš hodně písmenek). Jak jsem psal. Data se na webu vypisují OK, ale pokud dám v phpMyAdminovi EXPORT, tak tam mám všude místo šč otazníky. Nevíte prosím jak to vyřešit?
Prosím o trpělivost se začátečníkem. Díky.
<HTML>No, ještě pořád umí většina textových editorů Find & Replace.</HTML>
Find & Replace je sice hezké, ale vzhledem k tomu že jeden znak ? nahrazuje dva znaky š ž, tak myslím že docela k ničemu.
Myslel jsem že to půjde vyřešit nějak jednodušeji, než ručně přepisovat otazník na správný znak.
Když to správně zobrazuje na webu, tak jsem čekal, že to nějak půjde správně zobrazit i v MyAdminu.
Jádro pudla je v použití SET NAMES.
Tvoje aplikace to nepoužívá, tak místo toho, aby to ukládal do správného kódování, tak to ukládá ve skutečnosti do jiného. Zde pravděpodobně do latin1, protože je defaultně nastaven.
PhpMyAdmin a jiné kvalitní aplikace SET NAMES používají. Jelikož z dat nelze jednoznačně určit kódování, tak použiji takové, které je definované u tabulky. Pokud je tedy u tabulky nastaveno utf-8, tak použije SET NAMES utf8. Jenže už ale neví, že data jsou ve skutečnosti uložena v jiném kódování, proto při exportu nebo zobrazení ukazují klikyháky.
Jediný, kdo zobrazuje správná data, je pouze tvůj web. Tudíž bys měl jít touto cestou. To znamená, že bys musel vytvořit vlastní export. Případně přinutit aplikaci, aby použil SET NAMES latin1 a ne SET NAMES utf8.
Tomíku, díky za vysvětlující příspěvek.
Přemýšlel jsem, že nejlepší by asi bylo vytvořit si vlastní export. Nevíte někdo kde by se dal sehnat script, který by data z mysql tabulky zobrazoval jako jsou ve výstupu ze zálohy? Díky.
Jsem dobrák od kosti :-), tak dávám k dispozici skript, který jsem nějakou dobu používal. Základ jsem odněkud stáhl a mírně upravil. Vytvoří zálohovací soubor na serveru, který je pak třeba stáhnout k sobě.
Nezapoměň upravit řádky 8 až 11 a 93.
http://leteckaposta.cz/796496047