Не работает условие if. Есть такой код echo "Name: '".$result["NAME"]."'\n"; if ($result["NAME"] != "Авдеевка") { echo "IN"; } else echo "OUT"; Выводит: Name: 'Авдеевка' IN Хотя должен выводить OUT. Если проверить название в $result["NAME"] и в if, то оно совпадает (проверял посимвольно в notepad++). Из-за чего такое может быть? Возможно дело в кодировке? Как это проверить?
@Евгений111, ничего проверять не надо. Кодировка РНР файла, кодировка БД и кодировка соединения с БД должна быть одинаковой. И желательно utf-8.
PHP: <?php $result["NAME"] = "Авдеевка"; echo "Name: '".$result["NAME"]."'\n"; if ($result["NAME"] != "Авдеевка") { echo "IN"; } else echo "OUT"; echo "<BR>"; $result["NAME"] = "НЕ Авдеевка"; echo "Name: '".$result["NAME"]."'\n"; if ($result["NAME"] != "Авдеевка") { echo "IN"; } else echo "OUT"; ?> Result: Name: 'Авдеевка' OUT Name: 'НЕ Авдеевка' IN Всё работает как и задано в условии, другой вопрос каким образом в $result["NAME"] попадает Авдеевка, если грешите на кодировку, то проверить просто - поменяйте кириллицу на латиницу "Авдеевка" => "Avdeevka"
UTF8 или LATIN1 БД. (хотя для новычка это не важно). Если вы не уверены, что приходит из БД, что из формы (или откуда у вас там данные), Используйте mb_detect_encoding() для теста. Далее все отправляете через mb_convert_encoding() и результат уже сравниваете. + хорошо бы перевести строки в один регистр и сравнивать как тип === тип.
Данные приходят из БД. С mb_detect_encoding что-то не получается. Добавил echo mb_detect_encoding($result["NAME"]); - ничего не выводится. Код http://joxi.ru/5md5qE1I3zPKP2 а вот что выводит http://joxi.ru/Y2LB5Wli75O8lr - смотрю в режиме "Просмотр кода страницы".
возможно, буквы на разных языках набраны. $result["NAME"] = 'Авдеевка';//буквы e на русском $result["NAME"] = 'Авдeeвка';//буквы e на английском echo "Name: '".$result["NAME"]."'\n"; if ($result["NAME"] != "Авдеевка") { echo "IN"; } else echo "OUT";