mb_strtolower, strtolower, stripos и др. не работают с русскими символами
Уважаемые форумчане, доброго времени суток. Проблема проявилась таким образом.
Когда я ввожу в код php строки, то они выводятся на экран нормально, но стоит обработать их функциями mb_strtolower, strtolower, stripos и некоторыми другими и строки сразу же превращаются в вопросы. Например если я введу: Код:
$A="мяч"; Код:
echo $loveTextB= mb_strtolower($B); В итоге результат работы функций непредсказуем. Например, попытка найти первую позиции вхождения в $B подстроки $A: Код:
echo $pos=stripos($loveTextB, $loveTextA); Код:
echo $pos=stripos($B, $A); Тестирую на Denver, PHP Version 5.2.12. В настройках сервера стоит: Код:
character_set_client utf8 Код:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> ; Код:
header('Content-Type: text/html; charset= utf-8'); Код:
setlocale(LC_ALL, 'Russian_Russia.65001'); Код:
AddDefaultCharset utf-8 |
P. S. С помощью советов на других форумах проблему удалось решить таким способом:
1 В скрипт php добавила строку указывающую настройки действующие на все мульбайтовые функции: [code=htmlphp][mb_internal_encoding("UTF-8");[/code] 2 Вместо функции stripos стала использовать mb_stripos. Для функции mb_strtolower можно ещё явно добавить кодировку, с которой она должна работать [code=htmlphp]echo $loveTextB= mb_strtolower($B,'utf-8');[/code] |
Молодец, что сама решила! :)
У тебя просто кодировка разная была |
Часовой пояс GMT +4, время: 17:43. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.