Dobrý den,
mám tento problém. Chtěl bych exportovat databázi do souboru, ale ať ji exportuji jakkoliv, tak se mi exportuje bez diakritiky. Resp. místo háčků a čárek jsou otazníky.
Když se podívám přímo do tabulek v phpMyadmin, tak i tam již tyto speciální znaky ukazuje jako otazníky, přitom web je všechny čte správně a bez problémů.
Jak tedy mohu exportovat tuto databázi, aby veškerá diakritika byla zachována?
Děkuji moc za pomoc!
Při exportu musíte nastavit správně kódování. Tedy uložit v takovém kódování jako je databáze.
Pokud tomu tak je, pak je vše v pořádku. To si jen editor/prohlížeč nerozumí s tímto kódováním.
Problém je ovšem už v samotné databázi ještě před exportem. Já totiž nechápu, jak je možné, že již při samotném procházení databáze dochází k nečitelnosti znaků.
Jen bych chtěl dodat, že kódování databáze je latin2_czech_cs.
=Tom (fes.unas.cz)=
Problem neni v databazi. Problem je v kodovani souboru, ktery ukladas.
U nove vytvareneho souboru se kodovani impliticne urcuje podle kodovani skriptu (alespon z mych zkusenosti to tak je - mozna zalezi na nastaveni ..). Pokud chces ukladat soubor v jinem kodovani nez je napsan skript nezapomen nacteny text do spravneho kodovani prevest.. (iconv())..
To, ze se v phpMyAdminovi ceske znaky zobrazuji divne je chyba/vlastnost phpMyAdmina - nepodari se ti to zrejme s zadnym kodovanim nastavit tak, aby ceske znaky bral spravne.. :/
Omlouvam se, zrejme jsem spatne pochopil tema - jedna se jenom o export databaze v phpMyAdminovi? Pokud ano, musi sedet kodovani exportovaneho textu, obsahoveho textu a kodovani souboru. Potom neni problem - vetsinou.
___
Ale zrejme zalezi na poloze hvezd a planet v blízkém okolí nebo na verzi phpMyAdmina, protoze jsem mel asi roka zpatky na localhostu verzi takovou, ze se mi to nepodarilo zadnym znamym zpusobem a diakritiku jsem musel nasledně upravovat ručně.
phpAdmin zobrazuje spravne kodovani nastavene v databazi, pokus spravne nastavis kodovani pro admina.
Problem je spis v tom, ze mas databazi na latin2, soubor uklada do databaze ve win1250, ale nepouziva pri rom SET NAMES pro prekodovani do latin2. Ve vysledku tedy php adminem zobrazujes kodovani win-1250 pomoci latin2, coz ti hodi otaznik.
Cili, co s tim?
Prepni si php admina na win-1250. Pokud to nepomuze, exportuj bez kodovani. A pokud ani to nepomuze, pouzij mysqldump linuxu, ktery to umi exportovat bez kodovani. A pokud selze uplne vsechno, napis si vlastni programek na export/import a nastavuj mu kodovani, jake potrebujes.
IMPORT jsem provadel pres BigDump.php , google. Export jsem volal mysql dump linuxu, zkusim to najit...
@ini_set('error_reporting', E_ALL);
@ini_set("display_errors", "on");
error_reporting(E_ALL); //chyby = on
// --- mysql ---
$SQLhost = "localhost"; //server (host)
$SQLuser = "root"; //MySQL user
$SQLpsw = ""; //MySQL password
$SQLdbname = "photo_x"; //MySQL DB name
$a = "";
$b = "";
$file = 'itf-utf8.sql';
//cz.php.net/exec
$c = exec("whereis mysqldump");
//latin1,utf8,cp1250
$command = "/usr/bin/mysqldump --host=".$SQLhost." --user=".$SQLuser." --password=".$SQLpsw." --opt ".$SQLdbname." --default-character-set=utf8 --skip-set-charset > ".$file;
$a = exec($command);
byla to dost makacka prinutit ho to spravne zkonvertovat, myslim, ze jsem resil utf8, zrovna
=peta=
Opomel jsi dalsi moznost, napsat si vlastni skriptik v php, ktery nemusi nutne bezet na linuxu a vysledky bude mit stejne.. staci pouzit funkci iconv() .. Narozdil od linuxovych prikazu je (skoro) vsude :)
Freeze (dreamer.kvalitne.cz)
iconv je nespolehlivy. Pokud neco nemuze dekodovat, prerusi dekodovani a zbytek textu uz nemas.
Ale dobra, iconv a characterencoding na wiki pro win. To ale lze pouzit pouze tehdy, pokud vis, jake mas kodovani. (http://www.volny.cz/peter.mlich/www.htm#mssub4)
Jo, pak tedy jeste jeden tip. Kodovani muzes zjistit napriklad tak, ze si vystup SQL ulozit do txt souboru, smazes tak na 10k, aby to dlouho netrvalo. A otevres ve FF, poprepinas kodovani. Pokud je kodovani ve FF a je v souboru Ok, tak se doklikas do verze s hacky a carky. Over si vsechny znaky.
ěščřžýáíéÚŮúůĚŠČŘŽÝÁÍÉÚŮ a nejake dalsi jako ďťň