До недавнего времени без проблем пользовался исключительно cp1251 и ЕДИНСТВЕННАЯ заморочка, которая возникала - это необходимость iconv при приеме ajax запросов. ВСЁ!
Регулярное капанье на моск инет-инфы о том, что utf-8 лучше всетаки заставило меня попробовать ентот фрухт. Конвертация моего двига и базы на utf-8 заняла не более часа, тут проблем не возникло. Проблемы начались потом!
Все "нормальные" методы работы со строками, ну например такие как chr(), ord(), strlen да и вообще все, понятно что надо заменять на multibyte версии, но во первых не для всех есть мультибайт-аналоги, во вторых даже замена порой превращается в танец с бубном, пока врубишься что еще надо дать параметрам для корректной обработки. например я так и не понял зачем мне, чтобы работали mb_strlen() и mb_substr() нужно принудительно им говорить об utf-8! (mb_detect_order() - как мертвому припарка).
Еще пример - если страница внешнего сайта в cp1251, то забрав ее к примеру курлом или просто file_get_content, mb_detect_encoding определяет ее все равно как utf-8! А почему???
Вообще, приводить примеры можно еще долго, смысл в том, что переход на utf-8 вовсе не упростил жизнь, а добавил кучу новых проблем.
Кто-то скажет "ну надо просто 1 раз разобраться и все".
Отвечу: а зачем, если на cp1251 у меня этих проблем вообще небыло!!!
Ради интереса погуглил: "почему utf-8 лучше" - ничего вразумительного, все статьи полны лишь идеологических громких слов и САААМЫЙ весомый аргумент - что в utf-8 больше символов! Да мне вообще не всралось 100 000 символов, на cp1251 ниразу не возникла потребнось в каких-то лишних сотнях каких-то ненужных символов! Все типографические символы без проблем лепились через &...;
Вот и собственно вопрос: в чем прикол???
Спустя 6 минут, 49 секунд (4.02.2012 - 13:00) VELIK505 написал(а):
Моё мнение.
Ничем не лучше. И вроде как даже помедленне чем 1251.
Да имется проблема на 1251 с аяксом и так же если использовать api яндекс метрики я столкнулся с такой проблемой но в итоге всё очень легко решаемо.
У меня дедик и если мне надо настроить сервак под utf-8 или 1251 это не занимает и труда.
Разницы не вижу если честно.
Ничем не лучше. И вроде как даже помедленне чем 1251.
Да имется проблема на 1251 с аяксом и так же если использовать api яндекс метрики я столкнулся с такой проблемой но в итоге всё очень легко решаемо.
У меня дедик и если мне надо настроить сервак под utf-8 или 1251 это не занимает и труда.
Разницы не вижу если честно.
Спустя 1 минута, 16 секунд (4.02.2012 - 13:01) Invis1ble написал(а):
redreem
Цитата |
нужно принудительно им говорить об utf-8! (mb_detect_order() - как мертвому припарка). |
mb_internal_encoding()
Цитата |
mb_detect_encoding определяет ее все равно как utf-8! А почему??? |
потому что mb_detect_encoding() - редкостное Г.
Цитата |
Отвечу: а зачем, если на cp1251 у меня этих проблем вообще небыло!!! |
не было проблем - так не переходил бы тогда
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 1 минута, 16 секунд (4.02.2012 - 13:02) inpost написал(а):
redreem
mb_internal_encoding()... опоздал на секундочку...
mb_internal_encoding()... опоздал на секундочку...
Спустя 2 минуты, 55 секунд (4.02.2012 - 13:05) Invis1ble написал(а):
Цитата |
Вот и собственно вопрос: в чем прикол??? |
прикол в том, что иногда требуется интернационализация например
Спустя 33 секунды (4.02.2012 - 13:06) inpost написал(а):
redreem
Ради Аякса. Ради того, что ты захочешь, скорее всего, работать с большим количеством сайтов с большим числом клиентов мультиязычным.
Ради Аякса. Ради того, что ты захочешь, скорее всего, работать с большим количеством сайтов с большим числом клиентов мультиязычным.
Спустя 31 секунда (4.02.2012 - 13:06) inpost написал(а):
Invis1ble
ВТОРОЙ РАЗ ОПОЗДАЛ!!! ТЫ меня дважды с одинаковыми ответами опережаешь...
ВТОРОЙ РАЗ ОПОЗДАЛ!!! ТЫ меня дважды с одинаковыми ответами опережаешь...
Спустя 48 секунд (4.02.2012 - 13:07) Invis1ble написал(а):
inpost
бывает
бывает
![biggrin.gif](http://phpforum.ru/html/emoticons/biggrin.gif)
Спустя 5 минут, 14 секунд (4.02.2012 - 13:12) redreem написал(а):
1. т.е. если сайт исключительно для русскоязычного контингента - utf ненужен?
2. если сайт организован в cp1251, но просто сделана english версия (тупо заменены текста), то ведь англоязычные пользователи с виндой у которой страница не установлена в windows-1251 все равно ведь увидят все нормально?
я как-то пока не прогнозирую необходимость делать сайт для арабов или китайцев. получается для русского и английского cp1251 предостаточно?
2. если сайт организован в cp1251, но просто сделана english версия (тупо заменены текста), то ведь англоязычные пользователи с виндой у которой страница не установлена в windows-1251 все равно ведь увидят все нормально?
я как-то пока не прогнозирую необходимость делать сайт для арабов или китайцев. получается для русского и английского cp1251 предостаточно?
Спустя 3 минуты, 44 секунды (4.02.2012 - 13:16) inpost написал(а):
redreem
Версия то английская, но, порой, данные приходят с спец.символами, допустим http://en.wikipedia.org/wiki/S%C3%A3o_Paulo , вот с таким проблемы будут, хотя английский сайт.
Сейчас не прогнозируешь, а потом как понадобиться - там вечно один и тот же геморой будет. Так лучше столкнуться с ним на уровне "учебы", чем в момент необходимости появиться в заднице
Версия то английская, но, порой, данные приходят с спец.символами, допустим http://en.wikipedia.org/wiki/S%C3%A3o_Paulo , вот с таким проблемы будут, хотя английский сайт.
Сейчас не прогнозируешь, а потом как понадобиться - там вечно один и тот же геморой будет. Так лучше столкнуться с ним на уровне "учебы", чем в момент необходимости появиться в заднице
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 1 минута, 52 секунды (4.02.2012 - 13:18) Invis1ble написал(а):
Цитата |
т.е. если сайт исключительно для русскоязычного контингента - utf ненужен? |
получается необязателен
Цитата |
англоязычные пользователи с виндой у которой страница не установлена в windows-1251 все равно ведь увидят все нормально? |
не совсем понял
Цитата |
я как-то пока не прогнозирую необходимость делать сайт для арабов или китайцев. получается для русского и английского cp1251 предостаточно? |
см. п.1, хотя лучше прицеливаться на будующее, имхо
Спустя 2 минуты, 39 секунд (4.02.2012 - 13:20) redreem написал(а):
понятно. всем спасибо за мнения.
я сейчас делаю лексический анализатор, который возится исключительно в русских символах, большой объем вычислений идет именно с кодами символов и выборкой символов из слова, и честно говоря упарился 30-40% времени тратить на учет utf8. буду делать его на 1251.
я сейчас делаю лексический анализатор, который возится исключительно в русских символах, большой объем вычислений идет именно с кодами символов и выборкой символов из слова, и честно говоря упарился 30-40% времени тратить на учет utf8. буду делать его на 1251.
Спустя 1 час, 4 минуты, 46 секунд (4.02.2012 - 14:25) redreem написал(а):
кому интересно: перевел алгоритм с utf8 на cp1251 - скорость обработки текста возросла в 3-5 раз!
Спустя 5 минут, 50 секунд (4.02.2012 - 14:31) inpost написал(а):
redreem
То есть в 3 раза быстрее оказался utf ?
То есть в 3 раза быстрее оказался utf ?
Спустя 29 секунд (4.02.2012 - 14:31) redreem написал(а):
нет, cp1251 быстрее
Спустя 3 секунды (4.02.2012 - 14:31) neadekvat написал(а):
redreem, что интересно - вот работаю я с utf-8, и вообще не сталкиваюсь с проблемой отсутствия родной поддержки этой кодировки в php - потому что привык, все на автомате делаю.
А на счет "Зачем?". Я, например, работаю не только с русскоязычными сайтами. Есть и немецкий и прочее. А как я буду смотреть, правильно там или неправильно текст на немецком обрабатывается? А тут я уже с Юникодом надрочился - и я просто не заморачиваюсь.
Более того, большинство фреймворков, библиотек и пр. пишутся именнов utf-8, и, дабы избежать проблем совместимости, проще тоже поддерживать utf-8 (как и комментарии на английском писать).
А на счет "Зачем?". Я, например, работаю не только с русскоязычными сайтами. Есть и немецкий и прочее. А как я буду смотреть, правильно там или неправильно текст на немецком обрабатывается? А тут я уже с Юникодом надрочился - и я просто не заморачиваюсь.
Более того, большинство фреймворков, библиотек и пр. пишутся именнов utf-8, и, дабы избежать проблем совместимости, проще тоже поддерживать utf-8 (как и комментарии на английском писать).
Спустя 1 минута, 1 секунда (4.02.2012 - 14:32) Invis1ble написал(а):
Цитата |
Более того, большинство фреймворков, библиотек и пр. пишутся именнов utf-8, и, дабы избежать проблем совместимости, проще тоже поддерживать utf-8 (как и комментарии на английском писать). |
+1
Спустя 3 минуты, 48 секунд (4.02.2012 - 14:36) redreem написал(а):
neadekvat
я согласен что делать на utf "рядовые" задачи - это лучше и универсальнее.
ты попробуй поразбирать русский текст на слова, символы и символосочетания, как-нибудь их "поучитывать", посохранять, посортировать. мне сейчас исключительно это надо.
я согласен что делать на utf "рядовые" задачи - это лучше и универсальнее.
ты попробуй поразбирать русский текст на слова, символы и символосочетания, как-нибудь их "поучитывать", посохранять, посортировать. мне сейчас исключительно это надо.
Спустя 6 минут, 21 секунда (4.02.2012 - 14:43) neadekvat написал(а):
Цитата (redreem @ 4.02.2012 - 15:36) |
ты попробуй поразбирать русский текст на слова, символы и символосочетания, как-нибудь их "поучитывать", посохранять, посортировать |
А с чего ты взял, что я таким не занимался? Пробовал и вполне успешно.
А ты попробуй разобраться docx-файл на php в кодировке cp-1251, вот это действительно будет интересно
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 44 минуты, 51 секунда (4.02.2012 - 15:27) redreem написал(а):
вопрос не об "успехе", а об оптимальном выборе для задачи.
Спустя 4 минуты, 16 секунд (4.02.2012 - 15:32) inpost написал(а):
redreem
Показал бы тестируемый участок с utf и с win, мы бы тоже сравнили бы
Показал бы тестируемый участок с utf и с win, мы бы тоже сравнили бы
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 2 минуты, 7 секунд (4.02.2012 - 15:34) redreem написал(а):
inpost
неполучится, у меня класс здоровый, я говорю о комплесной производительности по обработке всего текста, а не о "цикле" с одной операцией. класс выкладывать не буду.
в качестве примера проверял просто разбор 2-х страниц с разных сайтов, в том числе и phpforum - стартовую.
1950 слов
с utf - 100-110 сек.
с cp1251 - 20 сек.
проверял сайт с 500 словами на странице
с utf - 12 сек.
с cp1251 - 4 сек.
неполучится, у меня класс здоровый, я говорю о комплесной производительности по обработке всего текста, а не о "цикле" с одной операцией. класс выкладывать не буду.
в качестве примера проверял просто разбор 2-х страниц с разных сайтов, в том числе и phpforum - стартовую.
1950 слов
с utf - 100-110 сек.
с cp1251 - 20 сек.
проверял сайт с 500 словами на странице
с utf - 12 сек.
с cp1251 - 4 сек.
Спустя 6 минут, 13 секунд (4.02.2012 - 15:40) inpost написал(а):
redreem
А тебе лично не интересно, какая конкретно функция замедляет процесс? Возьми и проверь каждое отдельное действие на скорость обработки, может где-то в нём и зарыта корова.
А тебе лично не интересно, какая конкретно функция замедляет процесс? Возьми и проверь каждое отдельное действие на скорость обработки, может где-то в нём и зарыта корова.
Спустя 45 секунд (4.02.2012 - 15:41) inpost написал(а):
И да, наш пхп форум на win-1251, понятное дело, что для работы с ним его надо переводить в ЮТФ, в связи с этим и замедление в скорости обработки.
Спустя 3 минуты, 54 секунды (4.02.2012 - 15:45) redreem написал(а):
inpost
на данном этапе мне важнее добить логику.
оптимизация и версии под кодировки - это следующий этап.
на данном этапе мне важнее добить логику.
оптимизация и версии под кодировки - это следующий этап.
Спустя 16 минут, 42 секунды (4.02.2012 - 16:01) Winston написал(а):
Цитата (redreem @ 4.02.2012 - 11:53) |
mb_detect_encoding определяет ее все равно как utf-8 |
Насчет mb_detect_encoding, http://habrahabr.ru/blogs/php/107945/
Спустя 3 минуты, 44 секунды (4.02.2012 - 16:05) redreem написал(а):
Winston
да, этот вопрос изучал несколько месяцев назад (proof
) и статью эту тоже изучал. спасибо, пока не актуально.
да, этот вопрос изучал несколько месяцев назад (proof
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)