Autor | Zpráva | ||
---|---|---|---|
Eduard A. Profil * |
#1 · Zasláno: 4. 3. 2009, 23:00:50
Dobrý den, potřebuji poradit nyní:
Mám databázi mysql na localhostu, kde jsem nyní komplet připravil e-shop a jeho data. Nyní nevím, jak to pomocí myadminu exportovat, protože všechny pokusy vedly k tomu, že jsem měl "rozsypaný čaj" (místo některých diakritických znaků je "?") V html mám tohle a funguje to: <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> Tabulka je v latin1_general_ci. V phpmyadminu teda vidím nějaké paznaky (sportovní ètyøkolka pøi pouití taky na mimink..), ale jinak to bezproblémů funguje. Poradíte, jak to celé exportovat? Díky eda |
||
SwimX Profil |
#2 · Zasláno: 4. 3. 2009, 23:09:14
Eduard A.
„Poradíte, jak to celé exportovat?“ Exportovat data z PHPMYADMINa lze pomocí tlačítka export. Zbytek si navolíš (export - musíš mít označenou tabulku) Co se týče kódování, řeší se to tu pořád. Meta tag nestačí, je třeba mít soubor spráně uložen. Např PsPAD nahoře karta Formát a vybrat stejné kódování jako si vynucuješ meta tagem. Tabulka by měla být ve stejném kódování, stejně tak i její sloupce. Předejdeš tím těmto problémům. Při připojování na db se eště nechá kódování vynutit pomocí: mysql_query("SET NAMES 'cp1250'"); mysql_query("SET CHARACTER SET 'cp1250'"); Pokud už tam máš data pak bych asi doporučil udělat skript - vytáhnout je z tabulku, překódovat je a nacpat do stejné tabulky (v jiné databázi), která by měla správně natavené porovnávání. |
||
Eduard A. Profil * |
#3 · Zasláno: 4. 3. 2009, 23:12:11
A to mám udělat jak?
Jak mám docílit toho, abych měl jak v phpmyadminu i viděl v html to samé? |
||
Kajman_ Profil * |
#4 · Zasláno: 5. 3. 2009, 09:31:23
Mělo by pomoci převést každý sloupeček na binary a poté na cp1250. Poté by už i v pma měla být diakritika dobře.
http://php.vrana.cz/prevod-kodovani-mysql.php |
||
Kajman_ Profil * |
#5 · Zasláno: 5. 3. 2009, 09:33:26
Nebo ještě můžete zkusit z pma export s nastavením latin1 a kouknout, jestli tam čaj zmizí. V tom souboru nahradit všechny latin1 za cp1250 (obdobně collation) a naimportovat zkušebně jako cp1250. Pokud to bude ok, tak naimportovat i na ostrý server.
|
||
zvěřiňák Profil * |
#6 · Zasláno: 5. 3. 2009, 10:56:10
1. Je jedno, v jakém kódování je tabulka a soubor, z něhož přenáším data (jenom musí korektně zobrazovat českou diakritiku).
2. Při každém připojení k databázi deklarovat v jakém kódování data posílám pomocí SET NAMES (není potřeba znovu nastavovat znakovou sadu SET CHARACTER SET). 3. Pokud tohle nemám (SET NAMES), databáze si určí při přenosu dat sama v jakém kódování jsou posílaná data a uloží českou diakritiku jako ty paznaky. Potom v phpmyadminu to vidíš. Při opětovném čtení z databáze bez nastavení SET NAMES použije databáze stejný algoritmus jako při zápisu a data se zobrazí správně. 4. Pokud zapsaná data chceš nějak opravit, žádným laborováním se znakovými sadami v databázi se ti to nepovede. Jedině dosáhneš toho, že všechny paznaky se převedou na otazníky a to už je nevratná operace a zpátky to vrátit nejde. 5. Jde to opravit jedině mimo databázi. Vypsat to nějakým skriptem bez nastavení SET NAMES (data by se měla zobrazit správně s diakritikou) a zapsat zpátky s nastavením SET NAMES na kódování, v jakém jsou data uložena. |
||
Časová prodleva: 15 let
|
0