Nejmodernější kódování v dnešní době je kódování UTF 8. Na nově vzniklých webech bývá standardem. Jedná se o 8-bit Unicode. Je určeno pro všechny světové jazyky.
HTML či PHP stránka v UTF 8
Kód
Kódování HTML stránky lze nastavit pomocí meta tagu <meta>
:
HTML 5
<meta charset="UTF-8" />
HTML 4.01
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
Editory
PSPad
Soubory je nutné editovat za použití kódování UTF 8. Skvěle to umí např. editor PSPad. Jde o voblu v menu Formát » UTF 8. PSPad zvládá i převod do jiného kódování.
NetBeans
Editor NetBeans kódování UTF 8 také ovládá. Když však editujete cizí soubory uložené v jiném kódování než v UTF, NetBeans s tím může mít problém. Kódování s v NetBeans zadává již při vytváření projektu.
Databáze v UTF 8
Porovnání – collation a character set
Při vytváření databáze se zadává znaková sada (character set) a porovnání (collation) v příkazu CREATE DATABASE
. Na UTF 8 ho nastavíme volbou utf8_czech_ci.
CREATE DATABASE IF NOT EXISTS `nase_databaze` DEFAULT CHARACTER SET utf8 COLLATE utf8_czech_ci;
Většinou toto porovnání nastavujeme přes administrátorské rozhraní phpMyAdmin při vytváření databáze. Pokud je již databáze vytvořena, tak vybereme v phpMyAdmin databázi a dáme vybereme volbu Úpravy » Porovnání.
Také může pomoci SQL příkaz SET NAMES
:
SET NAMES 'utf8';
PHP skripty a databázové dotazy
Aby se vstupní údaje z formulářů ukládaly do databáze a četly z databáze ve správném kódování, je nutné kódování nastavit po konexi do databáze příkazem mysqli_set_charset
. Zde je zjednodušený procedurální kód bez ošetření chybových hodnot:
<?php $link = mysqli_connect('localhost', 'my_user', 'my_password', 'test'); mysqli_set_charset($link, "utf8"); ?>
Další informace
- Čeština / cestina – Diakritika na HTML stránkách – jakpsatweb.cz,
- Výběr kódování znaků – php.vrana.cz.