Сенсей
Новичок
UTF-8 и русский текст. UPPER и сравнение не работают
Таблица :
Collation: utf8_general_ci
Мне нужно просто проверить существует ли введенный тег в таблице. По идее utf8_general_ci - регистронезависимый. Но - увы он у меня отличает Вася от вася
Решил пойти по другому - принудительно вривести все в верхний регистр и заюзать. Но тут тоже проблема.
Английские буквы все нормально апперкейсит. А вот русские буквы - просто коверкает:
Куда копать не знаю...
Всякие
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');
Не помогают
Гуглил, да и тут искал. В голове каша получилась. Не как не пойму - это проблема Mysql, Апача или же PHP?
И связано ли это setlocale?
И самый интересный овпрос - почему utf8_general_ci - регистрозависим у меня.
2 дня бьюсь уже головой об стенку...
p.s
При выводе локалей по system('locale -a'); выдает:
Array ( [0] => C POSIX e [1] => _US.utf8 )
Таблица :
PHP:
CREATE TABLE `cms_users_tags` (
`id` int(11) unsigned NOT NULL auto_increment,
`text` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `txt` (`text`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Мне нужно просто проверить существует ли введенный тег в таблице. По идее utf8_general_ci - регистронезависимый. Но - увы он у меня отличает Вася от вася
Решил пойти по другому - принудительно вривести все в верхний регистр и заюзать. Но тут тоже проблема.
PHP:
$res = sql_query("select UPPER(text) from ".$prefix."_users_tags limit 10", $dbi);
while(list($text) = sql_fetch_row($res))
{
echo "$text<br>";
}
Код:
Ўран
Ўрот
Ўр�?�?да
Ашдод
Ашк�?лон
Атлит
Аф�?ла
Арад
Куда копать не знаю...
Всякие
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');
Не помогают
Гуглил, да и тут искал. В голове каша получилась. Не как не пойму - это проблема Mysql, Апача или же PHP?
И связано ли это setlocale?
И самый интересный овпрос - почему utf8_general_ci - регистрозависим у меня.
2 дня бьюсь уже головой об стенку...
p.s
При выводе локалей по system('locale -a'); выдает:
Array ( [0] => C POSIX e [1] => _US.utf8 )