« 1 2
Autor Zpráva
I am
Profil *
no doprdele :( nechal sem tam hesla, sem vůl. super prosím adminy o smazání :(
I am
Profil *
Už sem je změnil tak je to v pohodě :-) Ale aspoň je vidět, jak už mi z toho kódování hrabe :)
I am
Profil *
Stále aktuální = pořád sem na dně :)
KEnik01
Profil *
//mysql_query("SET NAMES 'cp1257'");

Ty toto odkomentovane, mne pomohlo definovat prave takto.
tiso
Profil
[#30] - a problém máš teda kde? Vieš načítať dáta ale nevieš čo ďalej? Stále platí čo som písal v [#20]
Kajman_
Profil *
hlavně, na ic.cz nemohu pustit ten script přes shell, lze ho nějak spustit i z prohlížeče?
Jistě, jen si zrušte kontrolu a nastavte na začátku ručně

$argv[1]="hn_tranzit";
$argv[2]="cp1250_czech_cs";//latin2_czech_cs, utf8_czech_ci

Data budou ve skutečnosti asi v kódování, ve kterém máte stránky. Pokud si db myslí, že máte tabulky např. ve výchozím latin1 a že mu dáváte latin1, tak je ukládá a vrací bez konverze, proto se na stránkách může jevit, že to funguje, ale nebude fungovat spousta mysql operací nad tím řetězcem správně.

A možná bych ještě předtím zkusil vyexportovat data z pma s nastaveným latin1.
I am
Profil *
Kajman_
Mám docela strach to provést, nikde nemám zálohu, když se to pos*** tak ztratím celý obsah webu...

tiso
Problém je v tom, že jednoduchý script (ten jak je výše i se starými hesly) ty data načte správně - i bez SET NAMES, ale ta třída pro export obsahu db ty data stejně vrací znehodnocená... možná by ji stačilo upravit, ale nevím přesně jak.
I am
Profil *
Kajman_
Ten script funguje, mění to (zkoušel jsem na jiné db). Jen se bojím aby se to při té změně nezničilo. Mám to prubnout?
I am
Profil *
Tak sem schálně přes phpmyadmina změnil u jednoho sloupce porovnávání na cp1250 a stránka se načetla s paznaky -> změnil jsem to zpět ale paznaky zůstali. Ještě že jsem to nepřekonvertoval celé, mohlo být po celém webu. Ale sakra, co s tím? :(
I am
Profil *
Jinak je zajímavé že když se snažím o editaci toho řádku tak mi pma vypíše:
MySQL vrátil prázdný výsledek (tj. nulový počet řádků) a nenechá mě ho editovat a pod tím vypíše obrovskou změť čehosi cca 27 řádků :o)
tiso
Profil
[#9] - vykašli sa na to, čo iné ti poradiť?
[#7] - tak uprav ten skript. Potrebuješ
1. vybrať dáta z tabuliek
2. vytvoriť mysql dump. Nezabudni ten dump uložiť v nejakom presne definovanom kódovaní, aby si vedel v akom ho máš.
3. Ak je ten dump pri otvorení v tom kódovaní v poriadku, tak je ten dump správne
4. Ak je to kódovanie v ktorom máš dump iné ako to, v ktorom ho chceš mať v DB, tak ešte zmeň kódovanie toho dumpu (otvor v editorte, zmeň kódovanie, ulož)
5. teraz môžeš importovať ten dump do novej DB, ale už nezabudni nastaviť SET NAMES.
I am
Profil *
Hlavně tou změnou se mi tam ztratilo to kódování -> a nelze ho vrátit zpět a dokonce phpmyadmin odmítá upravit obsah. Vážně prohlašuju že phpfusion je nejhorší zlo :(
I am
Profil *
tiso
A jak mám naprogramovat takový dump? zjistit počet tabulek, potom z každé vybrat vyšechny řádky, ale jak to uděla abych to pak mohl snadno importovat a vytvořilo to ty tabulky samo?
Kajman_
Profil *
Tak sem schálně přes phpmyadmina změnil u jednoho sloupce porovnávání na cp1250

Nečetl jste důkladně ten odkazovaný článek ani skript. Je nutné nejprve změnit sloupeček na binary a pak teprve na sloupeček se správným kódováním. Když se netrefíte, tak změníte opět na binary a zpátky.
I am
Profil *
Kajman_
Když změním na binary tak se mi ta data co v něm jsou uložená smazala. Byla tam věta a po změně na binary tam je pouze zobáček <
I am
Profil *
Kajman_
Ale možná je to tím, jak jsem zbrkle měnil, mmnt vyzkouším.
I am
Profil *
Hm, tak to zase akorát nechápu. U jinech db to tak šlo ale u týhle ne. Napsal sem tam přes fusion Žluťoučký kůň.. a na webu se to ukázalo v pohodě. Pak jsem změnil typ na binary. Pak zase zpět na text s tím latin2_czech_cs a místo textu tam je otazník. Takže se to nevrátilo, jak by mělo. Proč?
I am
Profil *
Veřejně prohlašuju, že ten kdo mi tyhle záhady pomůže vyřešit má u mě pivo!
I am
Profil *
Hlavně je ten řádek začarovaný. Když ho dám upravit v PMA tak mi napíše že mysql vrátila 0počet řádků. Což je dost podezřelé.
I am
Profil *
Je fajn, že mail admin@ic.cz vrací všechny maily zpět jako nedoručitelné :-)
Kajman_
Profil *
Pak zase zpět na text s tím latin2_czech_cs a místo textu tam je otazník.

V pma je otazník? Na stránkách, kde nemáte nastavené správné set names to doufám nezkoušíte. Důležité je, aby v pma byla diakritika dobře. To je první krok.
I am
Profil *
Kajman_
Ne, zkouším to v PMA, dám projít a ukáže se jeden řádek, v jednom sloupci je onen text, místo diakritiky jsou tam otazníky, dám upravím strukturu a oněmu sloupci kde je ten text dám binary.. a v PMA při projití se ukáže jen jeden podivný znak, tak dám zase změnit strukturu a změním to zpět na to co to bylo (latin2_czech_cs) ale zůstane tam ten podivný znak a původní text se už ale nevrátí :(
zvěřiňák
Profil *
I am
Žádným laborováním se znakovými sadami v databázové tabulce neopravíš chybně zapsaná data (maximálně se zmršej tak, že už nepůjdou vrátit na původní hodnotu). Udělej export a ten soubor otevři v PSPadu. Zkontroluj v jakém kódování ten soubor je a případně ho změň na kódování, v kterém pak budeš další data do tabulky ukládat. Pomocí "najít a nahradit" oprav znaky chybně zapsané. Není to tak hrozný, těch znaků není až zas tolik. Po opravě uděláš import a teď musíš upravit skripty, kterými data do tabulky ukládáš i ty, kterými data z tabulky čteš (při každém připojení k databázi nastavit SET NAMES). Pokud to necháš tak jak to máš teď, tak jednak se ti ty opravený data budou zobrazovat chybně a ty co budeš ukládat, tak se zase chybně uloží (ale zobrazí se na webu správně).
I am
Profil *
zvěřiňák
Ale vždyť ty data musí jít vydolovat se správnou diakritikou, když to CMS vydoluje :o)
zvěřiňák
Profil *
I am
Přečti si tohle.
zvěřiňák
Profil *
I am
Pokud jsi těmi rošádami se znakovými sadami změnil většinu českých znaků na otazníky, tak to vrátit zpátky už nejde. Jedině už zbývá ručně opravit celou tabulku nebo se s uloženými daty rozloučit.
« 1 2

Vaše odpověď

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: