Написал простенькую страницу сегодня, подгружающую из SQL строки. На локалке все работает, но когда перенес на хостинг - SQL стала возвращать вместо UTF-8 строк ASCII строки => все русские символы стали "?".
<?php
include('configuration.php');
function sql_connect() {
global $SQL_ADDRESS, $SQL_LOGIN, $SQL_PASSWORD, $SQL_BASE_NAME;
mysql_connect($SQL_ADDRESS, $SQL_LOGIN, $SQL_PASSWORD) or die(mysql_error());
mysql_select_db($SQL_BASE_NAME) or die(mysql_error());
mysql_query("SET CHARACTER SET 'utf-8'");
mysql_query("SET NAMES 'utf-8'");
mysql_query("SET SESSION collation_connection = 'utf8_general_ci';");
};
sql_connect();
$query = 'SHOW VARIABLES LIKE "character_set_database"';
$result = mysql_query($query);
$r = mysql_fetch_array($result);
echo $r[1];
echo mb_detect_encoding($r[1]);
echo 'Русский пашет?';
?>
Этот код выдает следующее -
utf8ASCIIРусский пашет?.
То есть кодировка БД - utf-8, сайт utf-8, но строки возвращаются в ASCII.
Стоит добавить, что все записи в БД отображаются нормально.
Если что-то совсем глупое - не ругайтесь:3