Autor Zpráva
L0K0
Profil
Dobrý den, můj problém je v tom, že když zavolám nějakou informaci z DB předem říkám a zdůrazňuji nato, že po připojení k mysql mám tento kód "mysql_query("SET NAMES 'utf8'");" struktura řádku je "Text", "utf8_czech_ci". Přímo v databázi mám např. "Hnědý klobouk", dobře je to tam napsané tak jak chci, ale zavolám-li to v php tak mi to udělá toto "Hn?d� klobouk". Prosím o pomoc aby mi to konečně začalo vypisovat české znaky ušetřil bych si tím hodně práce.

DB je taky nastavené na "utf8_czech_ci".
L0K0
Profil
Soubor je taky v Kódování UTF-8 i v hlavičce. Tak netuším kde by problém mohl být..
RockFire
Profil
Zkus soubor přeuložit do UTF-8. Například PSPad to občas plete. Pokud to nepomůže, doporučuji dát sem odkaz.
etexweb
Profil
mysql_set_charset
L0K0
Profil
Zkusil jsem, ale nic zde máte ukázku jak to vypadá...
Davex
Profil
L0K0:
Přímo v databázi mám např. "Hnědý klobouk"
Jsou ta data v databázi uložena v kódování UTF-8? Podle výpisu to vypadá, že jsou tam v kódování windows-1250 a ještě nějak podivně.
L0K0
Profil
L0K0:
struktura řádku je "Text", "utf8_czech_ci".
Davex
Profil
L0K0:
struktura řádku je "Text", "utf8_czech_ci".
To ale není odpověď na to, jak a v jakém kódování jsi údaje do databáze dostal. V phpMyAdmin nebo Admineru jsou správně?
L0K0
Profil
No v phpmyadmin potom jsem vytvořil tabulku, řádky a napsal jsem tam údaje.
L0K0
Profil
Proč je tam tento "�" znak chápu, ale proč je často ze začátku "?" tedy za velký znak s háčkem. ...
Davex
Profil
Jak vypadá těch pár řádků, kterými se připojuješ k databázi a nastavuješ kódování? Možná chybně voláš mysql_query("SET NAMES 'utf8'"), protože výstup vypadá jakoby se tento příkaz neprovedl.
L0K0
Profil
C.PHP

 
$pripojeni = new mysqli('server', 'name', 'pass', 'db');

mysql_query("SET NAMES 'utf8'")


INDEX:

@include('c.php');

if(!$vysledek = $pripojeni->query("SELECT * FROM polozky WHERE typ='head' ORDER BY id"))

while ($radek=$vysledek->fetch_object()) {echo ''.$radek->nazev.'<br>';}
Davex
Profil
L0K0:
Proč voláš mysql_query(), když používáš mysqli? To bude ta chyba.
L0K0
Profil
Takže místo:
mysql_query("SET NAMES 'utf8'")

Jsem doplnil:
$pripojeni->query("SET NAMES 'utf8'");


A znaky se zobrazují, děkuji všem za pomoc přeji hezký den, můžete lock.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0