Autor Zpráva
Richard82
Profil
Dobrý den,
chci se zeptat, nejsem v tom moc zběhlý, zajímá mě jaké mám zvolit kodování pro češtinu? Musí se to poté i nastavit v kodu? Pokud možno kde? Díky
Zechy
Profil
Tradičně se používá UTF8, s čímž souvisí, že logicky:
• Tabulky v databázi musí mít UTF8
• Webové stránky musí mít meta charset UTF8
• Komunikace mezi PHP a SQL serverem musí mít nastaveno UTF8
• Soubory musí být uložené v UTF8

Až na to ukládání souborů, s tím problém nebývá, si většinou musíš vždycky vše nastavit sám.
Kajman
Profil
Richard82:
Použil bych stejné kódování, jaké je použité u stránek, které budou s tabulkami pracovat.

Je možné mít i kombinace
db      stránky
utf8    cp1250
utf8    latin2
cp1250  latin2
latin2  cp1250
ale zbytečně se převádí diakritika tam a zpátky.

V kódu, pak musíte říct, ve kterém kódování stránky máte.
Některé časteji řešené dotazy pro MySQL - FAQ » MySQL a čeština
Richard82
Profil
V databazi je vicero kodovani, mel jsem tam utf8_general_ci, prehodil jsem to utf8_czech_ci na tabulku a databazi, v HTML mam utf-8 a je s tim jeste vetsi problem. Nevis prosimte, kde muze byt chyba?

Jak to myslis komunikace mezi php a databazi? Kde se to tam nastavuje?
Zechy
Profil
Richard82:
Záleží, co používáš k připojení. Pokud jedeš třeba na mysql funkcích(což už by si správně neměl), měl by si ještě zavolat po připojení:
mysql_query("set names utf8");
// nebo
mysql_set_charset("utf8");
// nebo MySQLi
mysqli_set_charset("utf8");
Richard82
Profil
Mam v databazi zpátky utf8-general-ci, v kodu utf8 me dělalo ještě vetší chybu, tak jsem tam dal latin2, cp1250 a je to lepší, ale pořád ů se značí jako ?....Potřeboval bych to rychle vyřešit, mužete mi poradit, kde může být chyba?
Díky


Jak to myslíš co používám za připojení?
Já používám tohle
$connect = MySQLi_Connect($url, $login, $pswd, $database);

Proč bych neměl používát MySql funkce?

Pro dotazy používám tohle
$result = mysqli_query($connect, $SelectString);

díky


Jo, měl jste pravdu, tím to bylo mysqli_set_charset("utf8"); díky :)

teď už mě jen zajímá, proč nemůžu používat tyto funkce, můžete mě to někdo vysvětlit? Ať teda vím a nedělám to špatně. Díky
juriad
Profil
Richard82:
Je rozdíl mezi mysql_connect a mysqli_connect. Ta první je zavržená a v PHP 7 už ani neexistuje. Ta druhá je její moderní náhrada, která je a bude podporovaná.

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: