Mám stejný problém jako ostatní. Na stránkách pinces.xf.cz používám kódovaní cs-win1250. Při logování do phpmyadmina nastavím toto kódování, ale po zalogování je language nastaven zase na cs-utf-8 a volba win1250 chybí. Tabulky mají porovnání Latin2. V php zdrojácích používám win1250, takže nově vložené texty do databáze mě kazí ž,š
Je možný zachovat kókování win1250?
Díky, Vláďa
Vláďo, a použils postup doporučovaný v tomto vláknu -
Autor: zbi (pskoprivnice.unas.cz) Datum: 15. 11. 2005 15:42 ?
to: zbi (pskoprivnice.unas.cz)
Super, vse probehlo ok, az na posledni prikaz ALTER DATABASE, kde je pouzita spatna promenna pro jmeno databaze (ne $db ale $argv[1]), takze charset databaze neni zmenen.
Jani, použil. Do teď jsem měl špatnou češtinu jen na těch stránkách, které zobrazovaly data z tabulek, která byla vložená až po upgrade mysql. Teď, po aplikaci skriptu se mě zobrazuje špatně vše :(
V php souborech je šablona psaná ve win1250 a obsah se tahá z databáze. Můj problém bude, že mě není úplně jasný rozdíl mezi "Language", "Znaková sada pro připojení k MySql" a "Porovnání" u tabulek. Většinu dat zadávám přímo přes phpMyAdmin. V minulé verzi mysql jsem jednoduše nastavil Language na cs-win1250 a vše fungovalo. Teď po zalogování do databáze volba chybí.
2Jana> tak už to funguje. Můj omyl.
Díky zbi (pskoprivnice.unas.cz)
Tento problem neviem momentalne poriesit... :-(((
Stranka: http://dugas.kvalitne.cz/index.php?mod=Chatbox&lang=sk
Po upgrade MySQL na novsiu verziu ako mam donutit export phpmyadmin-a databazy (resp.len konkretnych tabuliek) pochopit, ze mam data ulozene v kodovani latin2_czech_cs?
Pri zobrazeni dat z db na HTML ich vypisuje takto:
"Píšte sem o čom len chcete..."
(Pozn.spravne zobrazenie na stranke je vynutene cez znamy HTML tag:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">)
Ale pri exporte ich vypisuje takto!
"Pí?te sem o čom len chcete"
Tzn.nevie rozlustit z latin2_czech_cs pismena š, ž a pod.!
Horeuvedeny postup cez skript mysql-upgrade-src.php mi je na figu, kedze zmeni kodovanie tak, ze konkretne š, ž nahradi otaznikmi!
PLEASE HELP :-)
Este jeden maly dotaz:
Preco aspon docasne nenahodite nieco ako "mysqlold.webzdarma.cz" do starsou verziou PhpMyAdmin, nech si user-i korektne vyexportuju/vyspravuju sucasnu db a je po problemoch, hmmm?
Skript mysql-upgrade-src.php NENAHRAZUJE znaky, jen změní označení kódování. Udělá něco takového (primitivní příklad):
Původní:
lazy dog <-- toto je napsáno česky
Po změně
lazy dog <-- toto je naspáno anglicky
Četl jsem tvůj dotaz několikrát, ale stále si nesem jist, zda jsem jej pochopil.
Pokusím se jej shrnout:
- na stránkách se ti to zobrazuje dobře (používáš charset=windows-1250)
- phpMyAdmin ukazuje typ kódování tabulek latin2_czech_cs
- problém je, že při exportu z PMA špatně zobrazuje "š" a "ž" (typický problém 8859-2 versus cp1250)
Je třeba si uvědomit, že znaky jsou v databázi nějak uloženy. Každý znak je reprezentován číslem. Znaky s diakritikou mají v různých kódováních různá čísla.
Příklady kódování znaků:
Znak - 8859-2 - cp1250
š - 185 - 231
ž - 190 - 167
Takže si zjisti:
- v jakém kódování máš uložené texty v db (pozor to není to samé, jako označení kódování tabulky!)
- v jakém kódování je exportuješ
- v jakém kódování se na vyexportované texty pak díváš
Bez těchto informací nelze poradit.
Asi by to chtělo nové vlákno. Už se tu řešilo mnoho různorodých problémů.
Dobrý den, děkuji Mírovi za instalaci mySQL 4.1.11.
A pro vás ostatní „neprogramátory“ nechápu, proč pracujete na PHP + mySQL, to nejsou jazyky pro neprogramátory. Pokud programování prostě nerozumíte, tak si můžete stěžovat jen na sebe. Pokud máte problémy s UTF-8, možná to je tím, že musíte specifikovat UTF-8 i pro přenos dat v dotazu:
mysql_query('SET CHARACTER SET utf8');
Pokud nerozumíte programování, tak přejděte na Microsoft Visual Web Developer 2005 Express Edition, Microsoft SQL Server 2005 Express Edition a aspweb.cz, nebo se dejte do studia.
Milý Václave Kutnohorský,
ty třeba nechápeš, proč se někdo snaží pracovat v PHP a MySQL, i když mu to (zatím) moc nejde. Důvody jsou asi různé, někoho to baví, někdo to potřebuje, ale společné mají to, že KAŽDÝ někdy začínal. Jen ty jsi asi výjimka a všechno jsi hned uměl. Bohužel, nám ostatním to chvíli trvá, potřebujeme čas, moho pokusů a omylů a občas i nějakou radu. Od toho fóra jsou.
Já jsem dneska už v pozici, že spíš radím, než si nechávám radit, ale nikoho bych nikdy neodrazoval od toho, aby se něco nového naučil. Každý se narodil neprogramátorem a jen někteří se programátory stali díky dlouhodobému zájmu a studiu. Já takovým nadšencům fandím a snažím se pomáhat.
@zbi: pekne si mu to ozrejmil, suhlasim s Tebe v mene vsetkych nas "blbych", ktori nespadli z Nebicka uceni :D
zbi: Jj přesně tak. Hezky řečeno.
A vůbec proč by php a mySQL neměly být jazyky pro neprogramátory(nota bene je mySQL vůbec jazyk?)?
Já myslím, že maj dost přátelskej syntax(pokud se to tak řekne) a že i neprogramátoři jsou díky nim schopni udělat docela pěkný věci na stránkách. Já "dělám" do php něco málo přes dva měsíce a pokusem a omylem(a že jich bylo hodně) jsem dosáhl i dost efektivních elementů na stránce.
Mrzí mě, že nejsem člověk, kterej by rozumněl podhoubí mySQL, a tudíž nedokážu ocenit(docenit) upgrade z vašeho hlediska. Já se na to koukám laicky-soudím podle výsledku, od upgradu se mě pořád něco kazí a musím něco složitě obcházet a přepisovat, i když už mám vše v latin2...
Tak zase takhle jsem to nemyslel. Mě šlo jen o to, že pokud někoho nebaví programování, tak pomocí jiných nástrojů dosáhne výsledku v daleko kratším čase a s daleko menším trápením. Z poznámek:
> I když mám vše v databázi nastavené pro kódování UTF8, tak databáze to s radostí ignoruje a používá si jen svoje latin2. Otázka dne: To myslíte jako vážně?
> mira: Termin "zprasené" vám klidně prominu :-)), ale pro mne "neprogramátora" je to stejně k prdu. Potřeboval jsem něco, v čem půjdou jednoduše dělat stránky
… jsem usoudil, že by pro Vás bylo něco jednoduššího skutečně lepší. Chtěl jsem Vám jen říci, že máte i jiné možnosti a že v tomto případě nechápou, proč jste pořád u PHP a SQL (pro mySQL). Ale jestli jste u těchto jazyků právě z důvodu, abyste programování rozuměli, tak to vítám.
A já mohu opět jen položit otázku, proč tomu tak je?:) Od začátku do konce jsem nechtěl nic jiného než, alespoň nějaký druh vysvětlení. Je možný, že více sofistikovaní čtenáři už to pochopili z postů tady, ale já stále nevím, proč když se píše v phpmyadmin, že znaková sada v MySQL je UTF-8 a poté používám kódování pro phpmyadmina UTF-8 a znakovou sadu pro přístup k MySQL UTF-8 , tak stále dostávám špatné ž,š. Z mého pohledu to prostě nedává smysl.Dávalo by to pro mě smysl, kdyby to psalo, že sada v SQL je latin2, ptž se mě zdá, že se tak chová(a někdo to zde snad i řekl, že?). No nebudu tady "spamovat" dále. Prostě kdyby jste mě někdo rozuměli a měli chuť mě to vysvětlit, budu rád...
Btw konec konců já jsem jen ekonom a programování je pro mě zábava a relax:))
Jiří Janák:
1) Znaková sada v MySQL: UTF-8 Unicode (utf8)
2) Znaková sada připojení k MySQL: utf8_general_ci
3) Komunikaci s databazi: SET CHARACTER SET utf8
4) Kódování stránky: charset=UTF-8
Pokud máte nastaveny tyto čtyři body a v phpMyAdmin se vše zobrazuje správně, pak by chyba neměla být u Vás. Jako utf8_general_ci (nebo jiný utf8) by měla být nastavena jak tabulka, tak příslušný sloupec. Kódování sloupce je ale rozhodující. Jeho hodnota je značená jako "Porovnání".
jen takova perlička ;)
Pan programátor Václav Kutnohorský (letectvi.xf.cz) ma opravdu MOC pěknou fotogalerii ( http://www.letectvi.xf.cz/gallery/ ) hlavně pro ty lidi co použivají radši prohližeč než IE ...
... nevim jestli něco takového je schopen napsat opravdový programátor.
Ale je to jen můj názor :)
Petr Janecka:
To bych nenapadal. Holt někdy je to nutnost a jistě to má své důvody. Komerční web to není, tak proč se patlat s optimalizací, když může návětěvník otevřít IE. Nota bene stránky jsou pěkné:)
Václav Kutnohorský:
No a že to nebylo tak složité. Opravdu řešení přinesla vaše rada (brzo dodám, která). Myslím, že jádro problému bylo to, že vy "high-level" programátoři nedokážete posoudit, co je pro nás polopatická rada. I z toho vašeho postu jsem řešení doloval nějakou chvíli:)). A zase naopak něco jste podával až příliš jak "pro debila". Nicméně uznávám, že jako jeden takovej se z vašeho pohledu můžu jevit, takže promíjím :))).
ŘEŠENÍ ZE STRANY LAIKA LAIKŮM(Nota bene Mira, to už psal, ale opět s příliš malou dávnou empatie):
Ještě před načítáním dat z databáze je nutné poslat query dotaz mysql_qeury("SET CHARACTER SET utf8"). Tímto vaše data vyjdou v nedeformované formě. Analogicky si dovololuji domyslet, že to bude řešit i problém ostatních jiných zlobících kódování (výměnou utf8 za vaše kódování). Radši uvedu jak přesně:
<?php
$spojeni = mysql_connect("sqlhost","username","heslo");
mysql_select_db("databaze");
$query = "SET CHARACTER SET utf8";
mysql_query($query);
//další query příkazy atd.
?>
No snad to někomu, kdo měl stejný problém jak já pomůže.
A ještě jednou pane Kutnohorský: děkuji!
@zbi:
V prvom rade dakujem za snahu pomoct :D
Takze presne ako si napisal, znaky "š" a "ž" sa zobrazuju pri exporte ako otazniky.
Co sa tyka Tvojich otazok kodovania, tak:
>v jakém kódování máš uložené texty v db (pozor to není to samé, jako označení kódování tabulky!)
1.
Znaková sada v MySQL: UTF-8 Unicode (utf8)
2.
Tabulka:
chatbox MyISAM latin2_czech_cs
Stlpec tabulky:
Pole Typ Porovnávanie Atribúty Nulový
obsah text latin2_czech_cs Nie
3.
PMA zobrazuje "Pí?te sem o čom len chcete..."
HTML (po vybere z db) zobrazuje "Píšte sem o čom len chcete..."
>v jakém kódování je exportuješ
Znaková sada súboru: windows-1250
>v jakém kódování se na vyexportované texty pak díváš
je to jedno, lebo to vyexportuje ako "?", teda nepomoze ziadne kodovanie!
Vidiet to mozes tu:
http://dugas.kvalitne.cz/index.php?mod=Chatbox&lang=sk
Fakt DIK ZA POMOC! :-)
Jěště ke kodování- v databázi se mi místo ž a š zobrazuje ? , ale na stránkách to mám dobře, vkládání nových dat do tabulek dělám z stránky, tak všechno vypádá normálně a nebýt fora tak bych si ani ničeho nevšiml. Problém by asi nastal kdybych vkládal data přes phpMyAdmin. Myslím si to dobře?
Udelal jsem vsechno tak jak je psany zde: Autor: zbi (pskoprivnice.unas.cz)
Datum: 15. 11. 2005 15:42, vyresil jsem tim problem vkladani dalsich ceskych textu do db, jiz se zobrazuji korektne. Bohuzel vsechny texty, ktere jiz vlozene byli maji spatnou diakritiku (š, ž). Nevíte jak se to dá opravit? Samozřejmě aniž bych musel veškeré texty do db zadávat znovu.
OK. Diky, fakt jsem to potreboval. Vsechno funguje
http://filip-kohl.wz.cz
Děkuji moc za návod na konverzi kodovani. Moc jste mi pomohl a jsem Vám vděčen. Prosím o zveřejnění toho návodu více na oči, ať i ostatní méně zkušení uživatelé, kteří mají stránky v win 1250 kodovani, mají možnost vyřešit své problémy. Já je však díky vám už nemám a ještě jednou dík ;)