Юникод. Хороший тон программирования

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»);

Комментарии временно отключены.