Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2011, 13:26   #1
Arassir
Форумчанин
 
Аватар для Arassir
 
Регистрация: 23.10.2008
Сообщений: 230
По умолчанию Функция strlen() не работает

Функция strlen() не работает как надо.

Если пишу
Код:
echo strlen("Привет"); // выдает 12
echo strlen("Privet"); // выдает 6
Что это такое? Может дело в кодировке UTF-8?
Arassir вне форума Ответить с цитированием
Старый 26.01.2011, 13:30   #2
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
Может дело в кодировке UTF-8?
Таки да, дело в ней.
Используй - http://ru.php.net/manual/en/function.mb-strlen.php
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 26.01.2011, 15:36   #3
Arassir
Форумчанин
 
Аватар для Arassir
 
Регистрация: 23.10.2008
Сообщений: 230
По умолчанию

Есть ли функция которая позволяет перекодировать данные из любой кодировки в UTF-8?

Функция UTF8_encoding() не работает
Arassir вне форума Ответить с цитированием
Старый 26.01.2011, 16:31   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,167
По умолчанию

PHP код:
iconv('windows-1251','utf-8','Группы'); 
к примеру.... вставляете свои кодировки
ADSoft вне форума Ответить с цитированием
Старый 26.01.2011, 16:44   #5
Linel
Форумчанин
 
Аватар для Linel
 
Регистрация: 21.02.2009
Сообщений: 372
По умолчанию

mv28jam написал, как решается проблема. Функция mb_strlen будет верно показывать количество символов.
No name. Just Linel.
Linel вне форума Ответить с цитированием
Старый 26.01.2011, 16:58   #6
Arassir
Форумчанин
 
Аватар для Arassir
 
Регистрация: 23.10.2008
Сообщений: 230
По умолчанию

Код:
mv28jam написал, как решается проблема. Функция mb_strlen будет верно показывать количество символов.
согласен если кодировка UTF-8 то все работает правильно

А если вдруг кто-то введет данные в другой кодировке, то функция будет работать не правильно
Вот я и хочу узнать есть ли функция которая преобразует данные из одной (любой) кодировки в UTF8
Arassir вне форума Ответить с цитированием
Старый 26.01.2011, 21:08   #7
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,167
По умолчанию

прикольно посмотреть как кто-то введет в кодировке .. отличной от той что Вы сами задаете на сайте
ADSoft вне форума Ответить с цитированием
Старый 27.01.2011, 08:41   #8
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
Сообщение от Arassir Посмотреть сообщение
А если вдруг кто-то введет данные в другой кодировке, то функция будет работать не правильно
Вот я и хочу узнать есть ли функция которая преобразует данные из одной (любой) кодировки в UTF8
А если вдруг в локалку 220 подадут?
Да есть ф-ии, которыми можно сделать код, который будет переводить из всех известных системе кодировок в UTF-8, но всё это, простите, ананизм, код этот будет работать медленно, да и китайские иероглифы из UTF-32 в UTF-8 перекодировать не получиться.
Вообщем не страдайте ерундой.
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает функция ReNameFile maloun Общие вопросы Delphi 2 10.01.2011 12:11
не правильно работает функция mansp Общие вопросы C/C++ 15 07.11.2010 16:35
не работает функция Benderbej JavaScript, Ajax 2 30.08.2010 18:54
Объясните, как работает функция strlen() TheWanderer Общие вопросы C/C++ 9 25.11.2008 22:46
Не работает функция gets()!!! Ilya'91 Общие вопросы C/C++ 1 28.07.2008 23:16