23 июл. 2009 г.

PHP + MySQL. Проблемы с кодировкой

Встречается ситуация, что сайт создаётся в одной кодировке, а база данных в другой. Например в базе данных установлена кодировка koi8-r, а на сайте – cp1251 (в качестве СУБД рассмотрим MySQL). В результате вместо нормального текста выводятся "нечитаемые символы".
Чтобы этого избежать есть несколько способов:

1) перекодировать данные с помощью функции convert_cyr_string(). Вот пример:
<?php
convert_cyr_string($text, "k", "w");
?>
Но этот способ является нежелательным.

2) Гораздо удобнее сразу после подключения к базе данных отправить вот такой SQL-запрос:
<?php
$db = mysql_connect($host, $user, $pass);
mysql_select_db($dbname);
mysql_query('SET NAMES cp1251;');
?>
и тогда все получаемые из базы данных данные будут уже в нужной кодировке.

Комментариев нет:

Отправить комментарий

Буду очень рад Вашему комментарию!