Možná jste při práci s PHP narazili na problém s UTF-8 kódováním. Doposud jste využívali kódování cp1250 nebo iso-8859-2 a nebyl problém. Okolnosti vás přinutily požívat UTF-8 a najednou bum. Na stránkách se vám chybně vypisují znaky s českou diakritikou a nevíte co s tím.
Jak správně použít UTF-8 a MySQL?
Je třeba dodržet následující pravidla:
- Po připojení nastavit kódování, ve kterém bude probíhat komunikace s databázovým serverem:
mysql_query("SET NAMES 'utf8'"); nebo mysql_query('SET CHARACTER SET utf8'); Od PHP 5.2.3 a MySQL 5.0.7 raději použijte: mysql_set_charset('utf8'); Je to správná a bezpečná varianta pro použití mysql_real_escape_string(). Více: 1, 2, 3.
- Kódování PHP souborů nastavit na UTF-8 (pozor na počáteční UTF-8 boom znak)
- Odesílat hlavičky s UTF-8 kódováním:
header('Content-Type: text/html; charset=utf-8');
- Nastavit UTF-8 kódování v HTML (meta tagy, xml hlavička aj.)
- Používat PHP řetězcové funkce, které zvládají UTF-8 (viz dále)