Diskuze: PHP + MySQL = diakritika po 10000x

PHP PHP PHP + MySQL = diakritika po 10000x American English version English version

Avatar
purity00
Člen
Avatar
purity00:

Už to tu bolo riešené milión krát. Skúsil som všetko. Preto sa obraciam na jedného ochotného človeka ktorý mi poradí/vytovrí:

  • čo použiť (XAMPP, UwAMP, EasyPHP, Usbwebserver V8 alebo iný...)
  • vytvoriť databázu + tabuľku s 2-3 stlpcami a pár riadkov. (SQL kód ktorý vytvorý tabuľku)
  • php kód s pripojením na databázu, vloženie riadku, vypísanie riadku

Už som skúšal:
SET NAMES 'utf-8'
mysql_query("SET CHARACTER SET utf8");
SET character_set_cli­ent = cp1250;
SET character_set_con­nection = utf8;
SET character_set_re­sults = latin2;
a podobné...

Prikladám screen plochy.
Vyriešme to už raz a navždy :D

 
Odpovědět 18.11.2014 23:59
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na purity00
Matúš Petrofčík:

Mám taký pocit že v phpMyAdmin sa ti znaky budú takto zobrazovať vždy, aj keď máš nastavené na UTF-8. Mne to tak robí tiež ;) hlavné je aby to na webe neblbo, čož mne neblbne.

Nahoru Odpovědět  +6 19.11.2014 1:33
obsah kocky = r^2 ... a preto vlak drnká
Avatar
IT Man
Redaktor
Avatar
Odpovídá na purity00
IT Man:

Přesně jak říká Matúš. A pokud ti to blbne i na webu, nevkládej tam ty informace přímo, ale přes nějaký skript. :)

Nahoru Odpovědět  +1 19.11.2014 6:36
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
Odpovídá na purity00
Michal Štěpánek:

Webová aplikace nestojí na tom, jak se data někomu zobrazují v phpMyAdmin, ale na tom, jak se zobrazují v prohlížeči.
A jak píše IT Man Když budeš mít problém se zobrazením i na webu, bude to pravděpodobně tím, že jsou data do DB vložena přes phpMyAdmin (tam se pak překvapivě zobrazují normálně)...
Když data do DB uložíš přes skript, budou se na webu zobrazovat hezky česky... :O

Nahoru Odpovědět  +2 19.11.2014 8:09
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
purity00
Člen
Avatar
Odpovídá na Michal Štěpánek
purity00:

Na webe sa mi to zobrazuje správne. Ale chcel by som to vyexportovať z mysql. A to už je problém. Potreboval by som aby to bolo dobré v tatabáze.
Neaké tipy?

 
Nahoru Odpovědět 19.11.2014 8:21
Avatar
Odpovídá na purity00
Michal Štěpánek:

Do jakého formátu?
V jakém kódování máš nastavenou DB v tom phpMyAdmin, potažmo celého phpMyAdmina?

Editováno 19.11.2014 8:24
Nahoru Odpovědět 19.11.2014 8:22
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na purity00
Michal Štěpánek:

Zkus se mrknout na MySQL Workbench, třeba ti to s exportem pomůže...

Nahoru Odpovědět 19.11.2014 8:27
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
purity00
Člen
Avatar
Odpovídá na Michal Štěpánek
purity00:

Všetko kódujem do UTF-8. Možná je probém riešený tu:
https://wiki.phpmyadmin.net/…Garbled_data
Ale moc som tomu článku nepochopil ;(

 
Nahoru Odpovědět 19.11.2014 8:36
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na purity00
Daniel Vítek:

Na co to chceš exportovat ? Abys to použil v jiné databázi ? Tak to bude stejné jako teď - v pma se to bude ukazovat takto, na webu správně.

Pokud to chceš použít jinak, můžeš si napsat vlastní script který ti to bude exportovat.

 
Nahoru Odpovědět 19.11.2014 8:54
Avatar
purity00
Člen
Avatar
Odpovídá na Daniel Vítek
purity00:

Napríklad do databázy MS Access alebo PostgreSQL.

 
Nahoru Odpovědět 19.11.2014 9:02
Avatar
Jiří Gracík
Redaktor
Avatar
Jiří Gracík:

V životě jsem s PhpMyAdminem neměl problém :D

Nahoru Odpovědět  +1 19.11.2014 9:40
Creating websites is awesome till you see the result in another browser ...
Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

PHPMyAdmin to zobrazuje vždy správně. Pokud je to zobrazené špatně, tak je špatně ta DB. Aplikace to tam vkládala pod špatným kódováním a teď je to rozhozené. Proto se ti to nedaří nijak spravit, není co.

Nahoru Odpovědět  +1 19.11.2014 17:04
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na David Čápka
Matúš Petrofčík:

Píšeš o tom exporte alebo o zobrazení v phpmyadmin?

Nahoru Odpovědět 19.11.2014 17:13
obsah kocky = r^2 ... a preto vlak drnká
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Matúš Petrofčík
David Čápka:

O zobrazení. Tvůj web ti může teoreticky fungovat správně, protože data špatná ukládá a pak je špatně načítá. Každopádně to asi není tak, jak by to mělo být.

Nahoru Odpovědět  +3 19.11.2014 17:14
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na David Čápka
Matúš Petrofčík:

Tak to sa na to budem musiet pozriet :) dik

Nahoru Odpovědět 19.11.2014 17:31
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Nahoru Odpovědět 12.7.2015 23:19
obsah kocky = r^2 ... a preto vlak drnká
Avatar
patulka.k
Člen
Avatar
patulka.k:

Vyřešilo se to teda nějak? Já to mám taky tak, že se mi data do DB ukládají jako kliky háky, ale když to vypíšu zpět do webu tak se mi to zobrazí normálně.

když jsem vytvářel DB, tak jsem jí nastavil character set ut8 i collate utf8_czech_ci, set names utf8 jsem zkusil a přesto mi to tam nezapisuje tak jak bych chtěl.

Tak bych se teda chtěl zeptat, jestli se to vyřešilo nějak?

Díky

 
Nahoru Odpovědět 18.9.2015 9:16
Avatar
Richard
Člen
Avatar
Odpovídá na patulka.k
Richard:

Ono není co řešit, phpmyadmin samozřejmě funguje správně, chyba je někde v postupu.
Databáze musí mít nastavenou utf8 (90% pravděpodobnost chyby, jelikož to často není default), řádek musí mít nastaveno utf8, soubory musí být v utf8 a spojení musí být v utf8.

Editováno 18.9.2015 10:05
Nahoru Odpovědět 18.9.2015 10:05
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na patulka.k
Matúš Petrofčík:

U mna to nakoniec bola chyba v kóde PHP, kedy som pri pripojení na databázu nedal vedieť že chcem používať UTF-8 a namiesto stringu "UTF-8" som posielal NULL

Btw hned druhý komentár čo som napísal je hlúuuuposť!!! sry za to

Nahoru Odpovědět 18.9.2015 10:31
obsah kocky = r^2 ... a preto vlak drnká
Avatar
katrincsak
Člen
Avatar
Odpovídá na purity00
katrincsak:

Je velice dobré mít nastavený i samotný soubor na UTF-8, ale ne jenom pro html výstup, ale i samotný soubor pro script, který se s tím pak musí poprat.

  1. Mít všechny soubory nastavené na kódování UTF-8
  2. Mít v hlavičce html souboru nastavené UTF-8, aby se vědělo v čem to má "server" interpretovat.
  3. Mít mysql/databázi/ta­bulky nastavené na UTF-8..

Na ty soubory používám ale kódování UTF-8 bez BOM a formát Dos/Windows.

Dříve jsem se s tím pral podobně, ale jakmile mám vše opravdu na UTF-8, tak je skoro nemožné, aby se něco vypisovalo jinak.

Nemám ale zkušenost s nastavováním vlastního serveru a nevím co lze vše ovlivnit ;-)

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 18.9.2015 10:37
Avatar
patulka.k
Člen
Avatar
patulka.k:

já už jsem zkusil snad všechno tak pošlu screen kodu a vypisu v phpmyadmin a jak se to zobrazuje na webu. doufám, že neporušuju nějaká pravidla když vložim odkaz, chtěl jsem obrázek, ale to asi nejde.

http://www.imgup.cz/…kod_utf8.png

http://www.imgup.cz/…is_phpmy.png

 
Nahoru Odpovědět 18.9.2015 13:17
Avatar
patulka.k
Člen
Avatar
patulka.k:

bohužel nejde ani edit tak musím dát další příspěvek...

už jsem na to přišel, kde byl problém.

Když jsem vytvářel DB a tabulky tak jsem jim nastavil utf-8 to je sice v pořádku, ale ještě to chtělo před příkazem INSERT_INTO ( např v jiném souboru) dát před tímto příkazem:

mysqli_query($spo­jeni,"SET NAMES 'utf8'");

takže nakonec to byla chyba v tom kodování, ale kdo to moh vědět :) tak sry za spam klidně smažte ...

každopádně díky za rady

 
Nahoru Odpovědět 18.9.2015 16:33
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 22 zpráv z 22.