ну, сразу и насчет кодировки обращусь за помощью. пользуюсь при написании кода NetBeans IDE (у проекта по умолчанию стоит кодировка UTF-8), хромом и денвером, так же задал в начале php-скрипта заголовок: Код (Text): header('Content-type: text/html; charset=utf-8'); но результат моего мини-цикла такой: Добавлено спустя 29 секунд: то есть русские символы не воспринимаются здраво.
ответ не по теме, используй Open Server, портируемая штука, распаковал и сразу пашет, не создает ни каких виртуальных дисков, оконное управление, вообщем крутая штука.
Попробуйте в .htaccess добавить строку: Код (Text): AddDefaultCharset UTF-8 И поддержу VLK - Denwer мёртвый проект, да и качество этой сборки оставляет желать лучшего. Используйте Open Server.
похожая фигня возникает когда мультибайтные строки режут немультибайтным способом. так что, наверное, денвер не виноват, только руки
Если вручную переключить в браузере кодировку на utf становится нормально? Для беспроблемной работы кодировку надо указывать везде-везде и в заголовке, и в теге <meta> и в локали PHP setlocale(LC_ALL, 'ru_RU.UTF-8'); и в htaccess AddDefaultCharset UTF-8; при создании таблиц в БД и при подключении к БД.
файл .htaccess у меня лежал в 3 разных папках, которые на мой взгляд нечего там решать не могли, но я все же вставил туда Код (Text): AddDefaultCharset UTF-8 строку, которую предложил товарищ Deonis, а также создал .htaccess.txt в папке ../www, в которой лежат файлы сайта, но результат не изменился. сам код выглядит так: Код (Text): header('Content-type: text/html; charset=utf-8'); $str = 'абвгд'; for ($i=0; $i < strlen($str); $i++) { echo $str[$i]."<br>"; }
не понял тебя. я понимаю, что латиница отобразиться правильно, но мне необходимо правильное отображение и кириллицы.
Всё работает. Достаточно в первом (по глубине) .htaccess. PHP-фалы также должны быть в UTF-8, естественно, - т.е. Ваша строка 'абвгд' будет в той кодировке, в какой файл. Добавлено спустя 1 минуту 15 секунд: Прочитайте цитату, приведённую мной, ещё раз. Не дойдёт - читайте столько раз, пока не дойдёт.
что тут понимать, сделай две строки 'hello' и 'привет', потом воспользуйся методом strlen, который возвращает длину строки и верни длину первой потом второй и посчитай сколько букв в первой и во второй. На возникший следом вопрос "как так", я тебе скажу, ну как то так, по другому это не работает. Я предполагаю потому что язык старый.
о, вот теперь сработало, даже без использования заголовков: Код (Text): $str2 = 'абв'; for ($i = 0; $i < strlen($str2); $i++) { echo mb_substr($str2, $i, 1, utf8); echo "<br>"; } Добавлено спустя 3 минуты 9 секунд: всем спасибо, в особенности VLK and Deonis за "разжевовывание"
нихрена не сработало, включи вывод ошибок и получишь ошибку, потому что strlen($str2) возвращает около 6, а в реальности буквы у тебя всего 3.
Код (Text): error_reporting(E_ALL); ini_set("display_errors", 1); $str2 = 'абв'; for ($i = 0; $i < strlen($str2); $i++) { echo mb_substr($str2, $i, 1, utf8); echo "<br>"; } таким образом говорит только за неопределенную константу utf8, но твой посыл понял