Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
11 / 11 / 1
Регистрация: 25.08.2011
Сообщений: 158
Записей в блоге: 1
1

Функция strlen удваивает результат

17.07.2012, 12:29. Показов 4556. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый час!

На сайте использую функцию strlen. Проблема в том, что она каждый кириллический символ считает за два, т.е. если строка набрана кириллицей, то определяется ее длина в два раза больше действительной.

Прочитал, что можно заменить функцией mb_strlen. Но с этой функцией все тексты, выводимые перед ее использованием, отображаются иероглифами, а на ее месте выдается ошибка. Сайт пока на Денвере. Кодировка: utf-8.

Пробовал писать
PHP
1
mb_strlen($str, utf-8)
Та же ерунда.

Была мысль тупо делить результат на 2. Но этот вариант не подходит, т.к. латинские символы и числа считаются нормально, а изначально неизвестно, из чего будет состоять строка.

Как можно решить эту проблему?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2012, 12:29
Ответы с готовыми решениями:

Функция strlen
Пытаюсь подсчитать кол-во символов в строке и у меня выводит 12. Что я делаю не так? <? $str =...

Функция strlen() выдаёт двойную длину
если я пишу вот так $s = 'ляляля'; echo strlen($s)."<br />"; то выводит 12 а должна 6 а если...

Результат strlen
Есть код int i; char mass; i=1; mass='z'; scanf ("%c", &mass); i = 2;...

Функция strlen
Подскажите пожалуйста. Прохожу курс cs50.Так вот там в лекции есть такой код #include...

3
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
17.07.2012, 12:37 2
mb_strlen(string str[,string charset]);
Цитата Сообщение от Александр216 Посмотреть сообщение
mb_strlen($str, "utf-8")
0
11 / 11 / 1
Регистрация: 25.08.2011
Сообщений: 158
Записей в блоге: 1
17.07.2012, 16:44  [ТС] 3
Попробовал. Не принимает. Пишет:
Fatal error: Call to undefined function mb_strlen()
0
463 / 463 / 23
Регистрация: 17.08.2011
Сообщений: 1,488
17.07.2012, 17:54 4
значит либо отключена поддержка многобайтовости, либо пых скомпилирован вообще без mbstring
0
17.07.2012, 17:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.07.2012, 17:54
Помогаю со студенческими работами здесь

функция strlen
#include "stdafx.h" #include <stdio.h> #include <conio.h> #include <string.h> #define maxline...

Не работает функция strlen
#include <iostream> #include <string.h> using namespace std; int main() { string s; ...

Собственная функция strlen не вызывается
Задача стояла найти длину C-style строки при помощи функции, я задачу решил но при прохождении...

Что делает функция strlen() ?
Функция strlen()…что она делает...?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru