Pull to refresh

Comments 69

>>всеми возможностями юникода.
А можно поподробней?
без юникода невозможно использовать множество интересных символов
Я без юникода не могу правильно написать свое имя :(
Да, там даже от Mio комментарий про конец марта, кажется ;)
Если вспомнить все комментарии редакции про биллинг, то это ещё ничего :)
Вот интересно, а что препятствует переходу всего и вся на юниког, если это такая "клёвая" штука?
UFO just landed and posted this here
Только то, что многие люди попросту не знают о существовалии юникода.
Геморроя же я здесь не вижу. У самого локаль уже давным-давно ru_RU.UTF-8.
в частности, поддержка юникода в пхп даже не планируется.
Но мне кажется, что если юникод станет объективной реальности, разработчики пхп не смогут его игнорировать. Так что не ждём, переходим!
А я вот слышал, что PHP будет до мозга костей utf'ным!
да я только рада буду, если так :)
Та да. там сделают основной упор на UTF8.
Абсурд полнейший. PHP уже полностью поддерживает Юникод. Нет ничего легче, чем сделать сайт в кодировке utf-8 на php. Да что там. Все вап сайты в utf. А большинство из них на php.
я тоже делаю свои сайты на пхп и в утф-8.
но!
чтобы понять, что имеется в виду, достаточно например штатными пхпшными функциями поработать со строками, например посчитать длину строки.
Всю жизнь делал сайты в утф8, весь функционал работы со строками сохранялся. Разве что если использовать сторонние библиотеки... но это уж извините
Что то я не понял. Все сайты Wordpress написаны на PHP и по дефолту работают на UTF-8
см. мой пост выше.
Все сайты Wordpress по дефолту англоязычные => им плевать на кодировку.
У Wordpress есть функция seems_utf8, с помощью которой он может определить, что ему подсунули юникод и пытается конвертировать строку в обычную кодировку. А это уже не поддержка utf.

В utf проекте кодированию/декодированию должна подвергаться только информация, которая приходит извне или уходит куда-то. Внутри проекта конвертироваться ничего не должно. Иначе это не utf проект!
В PHP 6 планируется полная родная поддержка Unicode. Вот тогда Unicode и пойдёт в массы. ;-)
Сейчас, к сожалению, только через встроенное расширение mbstring с несколько суженной функциональностью.
Пока что еще php5 не совсем пришло в массы :)
полная поддержка - это хорошо. Реально хорошо. Ибо давно пора.
И за ссылку спасибо.
UFO just landed and posted this here
Почитайте changelog PHP6
Дело в том, что в обычных кодировках типа windows-1251 один символ занимает один байт. И так было изначально и все функции в языках программирования заточены под это. В юникоде символ может состоять из нескольких байт. Например английские буквы занимают один байт. Кириллица уже 2 байта. Попробуйте например посчитать длину слова "Превед", получите 12. А "Превед, медвед" - 26, т.к. запятая и пробел занимают один байт. В общем не все так просто. Вся проблема в софте.
Для perl существует прагма use utf8; Добавляете ее и perl понимает юникод как надо. Не добавляется - творятся чудеса. В PHP про поддержку юникода ничего не знаю, но вроде как ее там нет.
В общем при работе с юникодом надо чтобы язык умел оперировать символами, а не байтами, а это не все умеют, к сожалению.
Использовать юникод в языках, которые с ним работать не умеют можно, но на свой страх и риск. Можно таких чудес насмотреться. Многие начинаю верить в НЛО. А чудес на самом деле нет (в программировании). С опытом это начинаешь понимать ;)
Насчет php & utf - полный бред. Главное - ровные руки.
Это как же? Постоянный encode/decode? Использование mb_ функций? Не слишком ли дорого обойдется подобный переход на юникод? Тем более, что mb_ функции не включены по умолчанию. Простой пример типа
<?php
   $str = "dsип";
   print mb_strlen($str);
?>
Если исходник в юникоде - выводит 6! В случае с strlen результат тот же.
Ах, ну да. Вы же сказали прямые руки. Я забыл сказать PHP интерпретатору, что у нас все в utf-8, но зачем тогда в языке для этого более 50 новых функций. Вот это бред.
Чтобы перевести проект на PHP в юникод, придется перелопатить весь код, а не сказать в одном месте, что у нас utf-8. Несомненно, для этого нужны исключительной прямоты руки.

Извините, если резко высказался, но высказывания, подобные Вашему, вызывают у меня чувство, будто меня называют лохом. А мне это не нравится.
И еще, я не обсираю Ваш любимый PHP. Я говорю то, что знаю. Если я не прав, очень прошу меня поправить и направить на путь истинный. А комментарии, в стиле Вашего, могут мне сказать только об одном - о Вашей непрофессиональности.
UFO just landed and posted this here
Точно знаю, что отчасти на Perl, отчасти на Си. Может и PHP где-то используется - не знаю.
Точно знаю, что [сейчас] Хабрахабр написан на чистом PHP.
А смайл у "первых рук" видели?
Поддерживаю. Сам стараюсь все свои проекты делать в utf, ждём от хабра :)
Безусловно давно пора. Ещё в юникоде очень удобно расставлять те же ударения.
Ой, ребята, не управлять вам серьезными проектами, покуда вы внедряете фичи лишь потому, что существует такая техническая возможность.
На юникод переходить надо!!!
И не из-за возможности расставить ударения, а потому что это универсальная кодировка и ее вскоре понимать будут все. Просто если сейчас переход на юникод это, в некоторой мере, просто дань моде, то скоро это станет жизненной необходимостью.
Unicode — как был, так и остается злом.
Пока зла мало, его не замечаешь. Когда зла становятся сотни гигабайт, задумываешься, зачем оно?
По приведенным Вами ссылка народ хвалит UTF-8 и жаждит поскорее на него перейти :) Почитайте внимательнее ;)

>10 байт лучше чем 40
Знаете, отсутствие гемороя с перекодировками куда лучше чем такие мелочи в современном мире. К тому же не 40, а 20. 40 это для китайцев ;)
Если Вы плохо умеете читать, то ссылки, как и Unicode, Вам вряд ли помогут. "Почитайте внимательнее" ©, упоминаний проблем с переходом на Unicode даже по этим ссылкам — предостаточно. Если Вы ничего сложнее домашней странички не делали, Вам эти проблемы покажутся надуманными, но от этого они не перестанут быть проблемами.

лучше чем такие мелочи в современном мире
НизачОт.
Размер базы (не вес страницы!), скорость парсинга — не самые последние параметры в серьезной веб-разработке. Некоторые проекты (в области обработки и поиска информации, к примеру) весьма сильно упираются в скорость работы с диском, и уж поверьте, обработка Unicode этой скорости никак не добавляет.
Ну тогда XML и XSLT величайшее зло, придуманное человеком. Мало того, что сами по себе занимают много места, так еще и юникодовые по умолчанию. Не говорю уже о скоростях их обработки.
Если "скорость парсинга — не самые последние параметры в серьезной веб-разработке", то объясните, почему Google перешел на юникод, а Яндекс вовсю использует XSLT? Или это тоже не сложнее домашней странички?

Про размер БД можете мне не рассказывать. Приходится работать с таблицами в >50М записей. И все в юникоде.
Давайте не путать мух с котлетами.
XML хорош для передачи данных, но не для хранения (подумайте над поиском по RDBMS где данные упакованы в XML).
XSLT хорош для преобразовнаий.
XML с лёгкостью может "работать" в cp1251
в XSLT кодировка не имеет ни смысла ни значения.
UTF позволяет "не париться" относительно хранения любых кодировок, но и цена у этого "не париться" велика — бездумно такие вещи делать не стоит. Потому все доводы типа "UTF правильно потому, что правильно" это весьма негибкое (грубо говоря тупое) поведение.

Давайте лучше поговорим о тех реальных дивидендах, которые может принести хабру внедрение UTF. Я пока таковых не вижу, а вы?
А я и не говорю о необходимости внедрять на хабре UTF :)
Тут он может и не нужен, пока(?).
У юникода есть один большой плюс. Одна кодировка на всех. Никаких извращений типа KOI8, 866 и что там еще вымерло. Даже не представлю себе, как китайцы выкручиваются.
Верите, нет — но так и есть отчасти. XML — штука местами и хорошая, но то, что разбирается основными XML-парсерами на порядок медленнее, чем, например, JSon — к гадалке не ходи, можете тесты в качестве домашнего задания провести.

Выбор технологий и языка программирования зависит от многих причин. Тот же Гугл, если бы индексировал только рунет, данные в Юникоде бы не хранил. Вот есть такое подозрение ;-)
Есть доля правды в Ваших словах.

Только домашних заданий я делать не буду. По работе достаточно приходится ковыряться.
считаю, что неиспользующим Unicode кодерам нужно отрывать ноги. Руки оставлять, чтобы смогли переписать свои творения в Unicode.
В данным момент в софте мы имеет такое:
А хабр просто не пропускает нелатинские и некириллические символы, обрезая сообщения по первому неформатному символу.
Из создавшейся ситуации с кодировками следует вывод, что среднестатический кодер не догадывается о существовании других стран, языков и раскладок, кроме родной и английской, а если и догадывается, то просто ленив или недостаточно грамотен, чтобы использовать Unicode.
К слову, у Google и Microsoft и в массе своей у opensource-разработчиков вполне получается работать с Unicode, да и по примеру на скриншоте видно, что в том конкретном случае это было возможно, просто лениво.
С чего Вы взяли, что это Unicode?
В заголовке окна на картинке написано "QIP - Спокойное общение", если мне память не изменяет.
Так вот, если бы это был юникод, то было бы "QIP - РЎРїРѕРєРѕР№РЅРѕРµ общение".
У Вас что-то либо со шрифтами, либо с кодовыми страницами, и уж точно не с юникодом ;)
Думаю, у автора поста с системой всё в порядке, а лажа на скриншоте — это как раз проявление неюникодного приложения — система для них использует локаль по умолчанию. Если приложенеие юникодное, то проблем быть совсем не должно.

РЎРїРѕРєР — это попытка отобразить текс, закодированный юникодом на неюникодной локали. В винде такое не должно встречаться совсем (за исключением браузера, конечно).
Ну я примерно то же самое хотел сказать, что проблема далеко не в юникоде.
это не Unicode. это его отсутствие. причём проблема не принципиальная - типа, Delphi не умеет работать с Unicode в VCL, а Qt жрёт много ресурсов - а именно ляп разработчиков, что показывает нижняя строка на кириллице, на удивление отображённая правильно.
Надо бы заставить всех разработчиков программировать в чуждой им локали - русских в немецкой, немцев в китайской и т.п., тогда быстро бы привыкли писать всё в Unicode. Делается это всё очень просто - достаточно поменять язык по умолчанию для неюникодных программ с родного на вражеский, и тогда придёт весна и все увидят, кто где ср.. все ляпы с кодировками станут видны.
Не внимательно читал. Извинения ниже ;)
Упс. Прошу прощения. Не внимательно читал. Вы сказали "неиспользующим Unicode кодерам нужно отрывать ноги". Прочитал как использующим.
я вот этим иконвом наоборот сайты гоняю в цп1251, хотя кодировка системы именно утф8, и все оттого, что так и не смог добиться нормального отображения сайта в IE, мета-тэги не помогли, если руками каждый раз ставить кодировку, то все нормально, а вот автоматом не хочет ни в какую... а к сожалению на этот _браузер_ еще стоит ориентироваться
iconv с юникодом и cp1251 не всегда корректно работает. Тут аккуратнее надо быть, чтобы однажды не получить битую страницу..
Где-то у вас ошибочка, никаких пробем с utf-8 в IE нет
Нужен вот такой мета-тег <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt
Если не помогает, проверьте действительно ли страница в utf-8.
Поддерживаю. Хотя первым на очереди нужно ставить заголовок HTTP
Content-Type: text/html; charset=utf-8
тогда и http-equiv не потребуется.
function encode($buf) {
return iconv("Windows-1251","UTF-8",$buf);
}
header("Content-type: text/html;charset=utf-8");
ob_start('encode');
блаблабла
ob_end_flush();

В ие имелась описанная вами проблема, решилась дописыванием в head
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
вообще и я себе это именно так представлял, дописывал все те же теги, FF и Opera нормально ставят утф, а вот ИЕ ни в какую не захотел... бился-бился, да и бросил.
Обратите внимание, что он и так не особо держит нагрузку (kolbaskin error все видели?) А тут вы предлагаете всё пустить через unicode-wrapper и увеличить объём трафика где-то на треть только из любви к искуству? По мне так нужны аргументы поувесистее.

Лично я, хоть и сторонник UTF не вижу никакой необходимости в нём на Хабре.
Эх, жаль, что об этом посте только сегодня узнал, ибо как раз 15 мая, только за 3 часа до появления этого поста в Хабравики в разделе ToDo появился в графе "Приоритетные большие штуковины" пункт перевода сайта на UTF.
Если Хабр действительно написан на РНР, как Вы говорите, то я бы за этим с удовольствием понаблюдал :)
Sign up to leave a comment.

Articles