- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Доброго!
Понимаю, что задача смешная, но самому ее выполнить почему-то не получается.
Итак, есть переменная $text, содержащая некий текст в utf8 (напр. "текст текст").
С помощью echo $text[$i] пытаюсь получить некий символ из этой строки. Однако вместо символа из указанной позиции получаю какие-то странные символы из алфавита внеземных цивилизаций.
Имею две версии касательно причины сей неразберихи:
1. В utf8, насколько я знаю, каждый символ представляется 2-мя байтами, а не одним, и читать символы надо как-то по-другому;
2. Пришельцы наконец-таки решили войти в контакт с человечеством, и выбрали меня в качестве посредника.
Подскажите пожалуйста, как еще можно получить символ из определенной позиции?
ЗЫ: с substr($text,$i,1) таже-самая история.
А если iconv попробовать перекодировать из ЮТФ8 в 1251? И посмотреть что получится?
Доброго!
Понимаю, что задача смешная, но самому ее выполнить почему-то не получается.
Итак, есть переменная $text, содержащая некий текст в utf8 (напр. "текст текст").
С помощью echo $text[$i] пытаюсь получить некий символ из этой строки. Однако вместо символа из указанной позиции получаю какие-то странные символы из алфавита внеземных цивилизаций.
Имею две версии касательно причины сей неразберихи:
1. В utf8, насколько я знаю, каждый символ представляется 2-мя байтами, а не одним, и читать символы надо как-то по-другому;
2. Пришельцы наконец-таки решили войти в контакт с человечеством, и выбрали меня в качестве посредника.
Подскажите пожалуйста, как еще можно получить символ из определенной позиции?
ЗЫ: с substr($text,$i,1) таже-самая история.
По идее, процессору php должно быть абсолютно фиолетово, в какой кодировке у вас текст.
http://ru.php.net/substr
сделайте ctrl+F по "utf" - там в комментах есть примеры функций.
По идее, процессору php должно быть абсолютно фиолетово, в какой кодировке у вас текст.
- Вы ошибаетесь, PHP-парсер работает в определенной кодировке, которую берет либо из переменных окружения среды, либо, в случае использования, из setlocale. В простейших случаях, как уже советовали выше, можно спользовать iconv, а вообще PHP и UTF-8 - это песня :)
Brim.ru добавил 13.10.2008 в 15:08
http://ru.php.net/substr
сделайте ctrl+F по "utf" - там в комментах есть примеры функций.
- тогда уж mb_substr
тогда уж mb_substr
Да, если установлен. Я обычно сначала указываю способы решения стандартными средствами, если есть такая возможность:)
То что надо!
Спасибо огромное!
- тогда уж mb_substr
Столкнулся с тем же... Но есть загвоздка в виде неустановленного модуля mbstring:
Нашел решение здесь. Функция utf8_substr проверяет наличие mb_substr и iconv_substr (в порядке их быстродействия), при отсутствии - использует regexp.