Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Кириллица в ASCII и алфавитный список
Тут всё просто, т.к. использовались латинские буквы. Сейчас мне надо сделать тоже самое, но с кириллицей. Но сложность в том, что символы в выпадающем списке отображаются не правильно (сайт в кодировке UTF-8, в .htaccess строка "AddDefaultCharset UTF-8"). Найденный выход, кроме как индуским, не назовёшь:
Всегда старался избегать iconv(), но пока на ум только эта функция приходит. Если кто сталкивался с проблемой такой кодировки, то буду рад выслушать ваши варианты.
EuGen
Отправлено: 25 Мая, 2011 - 09:06:18
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
В UTF-8 номера кириллических букв будут другими. То, что делаете Вы - не решение, а обход проблемы (так как Вы переводите символы в однобайтовую кодировку).
В "чистом" виде задача некорректна - так как в ASCII 0<=ord(X)<=255 для любого X тогда как в UTF-8 номера кириллических букв будут больше 1000.
Предлагаю подумать в сторону изменения логики. Например, пробегать в цикле по буквам, а не по номерам. Для UTF-8 стандартный ord работать не будет (он работает с ASCII); так что можете взять любой пример с php.net, например:
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.