Невірне кодування при виводі даних із бази mysql
У разі, якщо кодування сайту і бази даних не збігається (частина тексту з бази виводиться - у вигляді незрозумілих знаків). Необхідно в скрипті, який підключається до бази даних додати команди, які вкажуть MySQL серверу кодування, в якому виводити текст.
Залежно від того, яку бібліотеку PHP ви використовуєте команди будуть виглядати по-різному (нижче наведено декілька способів):
1. Спосіб
Для бібліотеки mysql
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
mysql_query("SET CHARACTER SET 'utf8'");
Для бібліотеки mysqli
mysqli_query($link, "SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
mysqli_query($link, "SET CHARACTER SET 'utf8'");
// де $link - ідентифікатор відключення до БД
2. Спосіб
mysql_set_charset('utf8',$link)
// де $link - ідентифікатор відключення до БД
3. Спосіб
@mysql_query("SET NAMES 'utf8'", $link);
// де $link - ідентифікатор відключення до БД
4. Спосіб
$mver = @mysql_get_server_info();
if(version_compare($mver, '4.1', ">=")){@mysql_query("/*!40101 SET NAMES 'utf8' */");}
5. Спосіб
mysql_query("set NAMES utf8");
6. Спосіб
mysql_set_charset('utf8',$this->db);
7. Спосіб
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");