Как да си направим UTF-8 сайт с PHP и MySQL

Първо започваме със създаването на базата данни. Важно е тя да се създаде правилно, за да може да избегнем след това проблеми с export/import операциите. Ето примерния скрипт:

CREATE DATABASE baza_danni
    DEFAULT CHARACTER SET utf8
    DEFAULT COLLATE utf8_general_ci

След като сме задали така базата, опциите charcter_set и collation ще се използват за всяка таблица по подразбиране при създаването и, ако не е уточнено изрично. Все пак е добре да се указват в дефиницията на таблицата за яснота:

CREATE TABLE tablica ( ... ) CHARACTER SET utf8 COLLATE utf8_general_ci;


Същото важи и при създаване на колона в таблицата от тип CHAR, VARCHAR или TEXT. Това вече пряко се отразява на съхранения текст:

CREATE TABLE tablica
(
    kolona1 TEXT CHARACTER SET utf8 COLLATE utf8_general_ci
);


Дотук приключихме със създаването на базата данни. Сега трябва да се настои клиента на PHP да подава и изисква данните в правилния вид. Това се извършва непосредствено след извикването на функцията myqsl_connect():

$mysql_link = mysql_connect($host, $username, $password);
mysql_select_db($database, $mysql_link);  mysql_query('SET character_set_results=utf8');
mysql_query('SET names=utf8');  
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_connection=utf8');  
mysql_query('SET character_set_results=utf8');  
mysql_query('SET collation_connection=utf8_general_ci'); 

С това вече всичко е готово и от страна на PHP. Остава да добавим META таг, с който да укажем на браузъра, че използваме UTF-8 кодиране:

<html>
<head>
    <title>Title</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>

</body>
</html>

Препоръчително е също да се добави и header() дефиниция в PHP кода:

header("Content-Type:text/html; charset=utf-8");

Задължително настройте текстовия редактор, който използвате, да запазва файловете в UTF-8 формат.

 


Това е всичко по настройките. Оттук вече може спокойно да пишете своя сайт без да се притеснявате от несъответствия в кодирането на символите. Страниците ще се отварят по един и същи начин навсякъде.

Коментари:

simo (18-02-2011 21:55) :
Мерси, много ми помогна

Анонимен (04-11-2011 16:16) :
А като за по начинаещ някакво обяснение ?

DelimaN (21-04-2012 11:47) :
Благодаря супер полезна информация :)

Обратно към списъка със статиите

Тази страница последно е променяна на 2024-04-26 15:02:35