Функция STRLEN()
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Функция STRLEN() Expand / Collapse
Автор
Сообщение
17.07.2006 23:16
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 18.07.2006 18:45
Сообщ.: 3, Visits: 14
Люди помоги ПЛИИИЗЗЗ .... Такой глюк: Передаю закодированный текст в escape формате, декодирую в текстовый формат Unicode, когда измеряю длинну строки функцией strlen() выводит длинну непонятного размера

Вместо числа 3 выводит 9 вместо 4 13 и т.д. поразному может и для 4 вывести 18 (Зависит от символов)

Пример: измеряемая строка текста "1™M"  (3 знака), а выводит длинну 9 знаков ???? помогите плиззз Как осуществить корректное измерение !!! Помогите !!!, лучше конечно пример с кодом ;-)))

Сообщ. #900905
18.07.2006 2:45
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 03.11.2006 0:27
Сообщ.: 3, Visits: 9
Я не знаю, что ты паришься, вот я у себя так сделал, всё правильно выводит 3

<?
echo strlen("1™M");
?>

Сообщ. #900915
18.07.2006 19:00
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 18.07.2006 18:45
Сообщ.: 3, Visits: 14
Да я также могу !!!!! Дело не в этом.... А вот в чем !!!! Ты не понял меня...

Из формы передается зашифрованный текст командой escape() на JavaScript

передается в файл PHP посредством POST-GET

переменной $а присваивается значение a$=HTML_GET_.... ['msg_txt']

ПОЛУЧАЕТСЯ ДОПУСТИМ, что $a="1%u2221M"

пропускаю через функцию на PHP типа (unescape на JavaScript)

$b=utf8unescp($a) и присваиваю значение "1™M" переменной $b

Потом измеряю длинну переменной $b и присваиваю ее $c

$c=strlen($b) И в РЕЗУЛЬТАТЕ получаю вместо длинны 3 символа - длинну в 9 символов !!!! В чем глук понять не могу :(((

Сообщ. #900968
18.07.2006 23:32
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 03.11.2006 0:27
Сообщ.: 3, Visits: 9
Ты знаешь, не знаю как у тебя там java, но я попробовал как у тебя примерно, у меня тоже 9 показало, а теперь сделай так,

echo $b; echo $с;  и посмотри что выводиться.... и ищи траблу в скрипте...

....ты в следующий раз пиши полностью вопрос, а так конечно не понятно что ты имеешь ввыду, типа догадайся сам что я думаю....

Сообщ. #900973
18.07.2006 23:45


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 06.06.2007 1:59
Сообщ.: 947, Visits: 9 976
Строго говоря, strlen() и не должна возвращать длину, равную 3, для слова в формате UTF. Связано это с тем, что UTF отводит для одного символа не байт, как в cp1251, а больше. Так что ничего странного. Обрати внимание на функцию mb_strlen().

Сообщ. #900975
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 2:47