Юникод. Хороший тон программирования
6th July 2005 - 23:35
if ($f_name = @iconv('cp1251','utf-8',(substr
(iconv('utf-8','cp1251',$_POST['f_name']),0,50)
))
)
Тьфу, блин.
Отсутствие присутствия mb_* на фоне необходимости парсинга и модификации XLS, сохранённого как «веб-страница». На preg_replace местами вылезают непонятные глюки. Всё через костыли. Суровая действительность.
Categories: PHP | comments: (6)
Комментарии
1. Life 7th July 2005 - 11:51
iconv встроенная функция?
Mash:
Да, обычный iconv; хоть это хостер дал.
2. Slach 7th July 2005 - 15:02
? а зачем ??
у меня тут тоже с utf8 заморочки
думаю вот, может твою идейку тоже присобачить =)
что делает iconv если не може какие то символы из utf8 преобразовать в cp1251 ?? заменяет их на знак вопроса ? или выдает ошибку ??
а если ей подсунуть какой нибудь «невалидный utf8», в котором например встречается 0x07 одиночный какой нибудь?
Mash:
Это не идейка; так, прикол. Если уж есть iconv, то именно для обрезания лучше пользовать iconv_substr.
По поводу подсовывания невалидных вещей ничего сказать не могу, т.к. в эту сторону не смотрел, у меня на входе предсказуемые вещи. Если есть желание, то можно попробовать TRANSLIT|IGNORE.
3. Julik 7th July 2005 - 15:19
стыдно на такое жаловаться, товарищ.
давайте еще на кофеварке будем Unicode реализовывать.
Mash:
Стыдно, да. :)
Вспомнил, как .m выдавал CoffeeMaker.
Кстати, по нормальным рубиновым хостерам есть какая информация или по-прежнему надо покупать свой сервер?
4. wmas.msk.ru 7th July 2005 - 19:14
iconv есть не везде, UTF действительно проблема, но для конвертации уже придуманы отдельные фунции …
5. Julik 7th July 2005 - 19:56
По рубиновым хостерам информация есть, стучись в аську. Расскажу ничего не скрою (но порядок денег пока оголтелый)
6. artfabrique 15th April 2006 - 07:03
Нах гомороится с конвертацией кодировок!
иконв полезен будет если у тебя сайт на юникоде и фаилы с русскими названиями грузить нада из винды.. я его токо так использовал а для обрезания строк в юникоде используйте мультибайтовое обрезание mb_substr($text,0,200,«UTF-8»);