Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Apache 2.2.12 - как включить поддержку кириллицы?

54K
30 января 2011 года
Inacondition
43 / / 17.01.2011
Проблема подкралась незаметно. Установил XAMPP, не потребовалось никаких настроек, все прекрасно работало... После установки Windows sp3(не знаю, в этом ли дело) кириллица не распознается. В файле httpd.conf установки кодировок нет, но есть файл charset.conv в котором:

ru ISO-8859-5 Russian
uk ISO-8859-5 Ukrainian

заменил ISO-8859-5 на windows-1251 - не помогло...

не знаю что делать, стыдно, но похожих тем в инете не нашел...
244
30 января 2011 года
UAS
2.0K / / 19.07.2006
Цитата:
После установки Windows sp3(не знаю, в этом ли дело) кириллица не распознается.


Не распознается где? Ну и подробнее сами симптомы распишите.

54K
30 января 2011 года
Inacondition
43 / / 17.01.2011
В html-скрипте указываю:

<meta http-equiv="Content-Type" content="text/html; harset=windows-1251">

Вся кириллица выводится как "?????????" в любом браузере...
Естественно, я не имел в виду, что у меня в самой винде с кириллицой проблемы... Там все нормально. Но раньше проблем вообще не было(до переустановки).
54K
30 января 2011 года
Inacondition
43 / / 17.01.2011
Проблема исчезла так же как и появилась... Не люблю, когда так происходит... Так и не понял, что случилось. Все стало нормально после перезагрузки винды. Появилась мысль, что dreamweawer заглючил...
278
30 января 2011 года
Alexander92
1.1K / / 04.08.2008
Цитата:

<meta http-equiv="Content-Type" content="text/html; harset=windows-1251">



Если строго по вашему коду, то "charset". :) Если это здесь опечатка - тогда ладно, а если так и писали - могли быть проблемы.

54K
31 января 2011 года
Inacondition
43 / / 17.01.2011
Alexander92, а вы очень внимательный))

Чесно говоря, не помню как тогда было...
Сейчас
charset=windows-1251
попробовал:

заменил charset=windows-1251 на harset=windows-1251

работает...

Вообще убрал строку <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

снова работает. Конечно же я сохранял изменения и обновлял страницу (в опере и IE).

Думаю всетаки заглючил Dreamweaver:)...
54K
11 февраля 2011 года
Inacondition
43 / / 17.01.2011
Цитата: Inacondition
Думаю всетаки заглючил Dreamweaver:)...



Точно! Файлы сохранены уже со знаками вопросов. Такое случается каждый раз, когда создаю новую страницу. Я так понимаю, в настройках надо поменять, чтоб новые страницы создавались с кодировкой windows-1251. Только у меня не получается найти, где это сделать))

13
11 февраля 2011 года
RussianSpy
3.0K / / 04.07.2006
Вам не надоело еще использовать убогую win1251?
5
11 февраля 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: Inacondition
не знаю что делать, стыдно, но похожих тем в инете не нашел...


Марш читать про Уникод!

369
12 февраля 2011 года
Kesano
451 / / 09.10.2007
Сдался тот юникод, когда есть нормальная поддержка кириллицы в win1251???
Или по приколу вместо 1 байта кидать 2?
13
12 февраля 2011 года
RussianSpy
3.0K / / 04.07.2006
Цитата: Kesano
Сдался тот юникод, когда есть нормальная поддержка кириллицы в win1251???
Или по приколу вместо 1 байта кидать 2?



Вам тоже надо пройти по указанной выше ссылке и прочитать

5
12 февраля 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: Kesano
Или по приколу вместо 1 байта кидать 2?


Байты жалко? :D А теперь оцени количество текста на русском языке и колиечество разметки - ее символы как и прежде будут кодироваться одним байтом. Добавь к этой оценке потенциальную возможность использования языков отличных от английского и русского, либо специальных символов (диакритика, лигатуры и т.п.).

369
12 февраля 2011 года
Kesano
451 / / 09.10.2007
Цитата: RussianSpy
Вам тоже надо пройти по указанной выше ссылке и прочитать



Почитал. Очень впечатлил раздел про недостатки Юникода.

Цитата: hardcase
Байты жалко? :D А теперь оцени количество текста на русском языке и колиечество разметки - ее символы как и прежде будут кодироваться одним байтом. Добавь к этой оценке потенциальную возможность использования языков отличных от английского и русского, либо специальных символов (диакритика, лигатуры и т.п.).



Ну, байты как бы действительно жалко. Как описано по вашей же ссылке, Юникод в памяти сжирает больше места. Что, например, может быть критично для мобильных устройств.

И потом, все нормальные бравзеры подерживают вин1251.
Думаю, большинство разработчиков здесь пишут непосредственно русскоязычные или англоязычные проекты. Кто пишет на иврите, отзовитесь!

Для использования лигатур можно использовать &#xxxx;.
А для вставки мнемоников и наиболее распространенных символов (включая греческие), можно использовать достаточно наглядную таблицу мнемоников.

Нет, я не уговариваю кого-то перелезть с Юникода на Кириллицу, просто тема начиналась с включения поддержки кириллицы в апаче (меня пугают проблемы ТС),а вы начали толковать про Юникод.

З.Ы, указанную выше ссылку периодически использую себе в помощь.

З.Ы.Ы. лично меня очень сильно напрягают ресурсы на юникоде и когда юзвери начинают ляпать себе ники в виде набора арабских символов рисуя сердечки и т.д...

5
12 февраля 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: Kesano
Ну, байты как бы действительно жалко. Как описано по вашей же ссылке, Юникод в памяти сжирает больше места. Что, например, может быть критично для мобильных устройств.

Измерения в студию!
Мне уже страшно за JVM и CompactFramework, у которых все строки в памяти живут в UTF-16 (два байта на символ).

5
12 февраля 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: Kesano
Для использования лигатур можно использовать &#xxxx;.
А для вставки мнемоников и наиболее распространенных символов (включая греческие), можно использовать достаточно наглядную таблицу мнемоников.

А как ты будешь эти символы в памяти-то держать, если у тебя кодировка - однобайтовая. :D

244
12 февраля 2011 года
UAS
2.0K / / 19.07.2006
Юникод лучше использовать лишь по причине универсальности. Если вдруг потребуется получить многоязычность, то с переходом с cp1251 на utfx будет намного меньше проблем и головных болей.
+ если уж так критичен объем документа, то gzip/deflate никто не отменял)

Тем, более, как выше люди отметили, обычно на разметку уходит больше байт - гляньте на тот же исходный код этой страницы - смысловая инфа в виде текста занимает явно на порядок меньше, чем объемы разметки.
5
12 февраля 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: UAS
гляньте на тот же исходный код этой страницы

Кстати, глянул:

 
Код:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
369
12 февраля 2011 года
Kesano
451 / / 09.10.2007
Цитата: hardcase
Кстати, глянул:
 
Код:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />



Собственно вот. Надеюсь вы не будете ругать ресурс, на котором общаетесь...

Топикстартеру: Открываете в блокноте httpd.conf (в папке с апачем) и щиете:
AddDefaultCharset

у меня это AddDefaultCharset windows-1251

Если этого там нет, ТО ДОБАВЛЯЕТЕ СТРОКУ:
AddDefaultCharset windows-1251

5
12 февраля 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: Kesano
Собственно вот. Надеюсь вы не будете ругать ресурс, на котором общаетесь...

Ещё как будем :)

Хотя мне в сущности глубоко наплевать какая тут кодировка используется - исходники отображаются и ладно (но глюки с копированием-вставкой бывают, да). Я вижу, что в проектах, в которых я сейчас занят, используются базы с текстами на добром десятке языков (включая китайский), более того, эти проекты потенциально могут быть на эти языки локализованы. Даже при тотальном использовании Юникода, косяки связанные с однобайтовыми кодировками изредка встречаются: кто-то банально опечатался, и в хранимой процедуре вместо типа переменной nvarchar написал varchar - все, диакритика пошла лесом ещё на уровне БД.
Для меня ответ очевиден - однобайтовые кодировки доставляют лишь одни неудобства.

13
13 февраля 2011 года
RussianSpy
3.0K / / 04.07.2006
Готов поспорить, что ваша кривая верстка съедает с лихвой ту разницу в байтах между текстом в кодировке 1251 и юникодом.

К тому же о каких байтах беспокоиться в век многомегабитных соединений. Вы там что гигабайты текста рассылаете?
369
13 февраля 2011 года
Kesano
451 / / 09.10.2007
Цитата: RussianSpy
Готов поспорить, что ваша кривая верстка съедает с лихвой ту разницу в байтах между текстом в кодировке 1251 и юникодом.

К тому же о каких байтах беспокоиться в век многомегабитных соединений. Вы там что гигабайты текста рассылаете?



Откровенное хамство. Я тебе не хамил.

2 ALL:
При использовании AJAX - используйте только UTF-8 во избежание проблем с кодировкой ответов\запросов...

В других случаях использование win-1251 будет вполне уместным...

369
13 февраля 2011 года
Kesano
451 / / 09.10.2007
Цитата: hardcase
Ещё как будем :)

Хотя мне в сущности глубоко наплевать какая тут кодировка используется - исходники отображаются и ладно (но глюки с копированием-вставкой бывают, да). Я вижу, что в проектах, в которых я сейчас занят, используются базы с текстами на добром десятке языков (включая китайский), более того, эти проекты потенциально могут быть на эти языки локализованы. Даже при тотальном использовании Юникода, косяки связанные с однобайтовыми кодировками изредка встречаются: кто-то банально опечатался, и в хранимой процедуре вместо типа переменной nvarchar написал varchar - все, диакритика пошла лесом ещё на уровне БД.
Для меня ответ очевиден - однобайтовые кодировки доставляют лишь одни неудобства.



Вот кстати по поводу БД...
Не знаю почему, большинство хостингов, которые я использовал таблицы в БД делают по-умолчанию в Cyrillic_General_CI (cp1251)... Если таблицы в UTF - не создает ли это проблем при поиске, увеличения размера таблиц при хранении и т.д???

2 RussianSpy
Вот кстати Юникод... хорошо ли работают функции strlen, substr, preg_match ??? без НЕДО-костылей и псевдофункций?
Только честно.
Многие (и я в их числе) сталкивался с проблемой работы строковых функций в ПХП, т.к. они расчитаны на однобайтовые кодировки...

Если знаешь, как это побороть - расскажи. По возможности - без иронии.

244
13 февраля 2011 года
UAS
2.0K / / 19.07.2006
Кстати, в том же вконактике используется кодировка cp1251. Учитывая их мультиязычность - то мне кажется, что весь контакт - набор костылей.

По теме - не пойму, что плохого в юникоде? Только в том, что он больше места занимает? Я вот, когда пишу более-менее проект (или вообще какой-либо заказ), то всегда смотрю в будущее (пусть проект может быть и однодневкой).
А будущее показывает, что проект может расшириться и потребовать изменения кодировки. А может быть проект будет поддерживать индус, у которого вообще windows-1251 не стоит и он его не видел в помине.
Так не лучше ли сразу делать так, чтобы было хорошо? Чтобы в будущем не было головных болей и совершенствование проекта происходило более быстро.

Вспоминаю пример, когда мне надо было доработать (и частично кое-где перефразировать) какую-то поделку то ли немецкого, то ли австрийского происхождения. Со всеми "умлаутами" и прочими прелестями их кодировки и языка. В итоге, я долго матерился, но с горем пополам все перевел в утф8 - потому что работать с "неродной" кодировкой очень сложно - постоянные баги то в редакторе, то при выводе на страницу, то при редактировании БД.
P.S.: а что было бы, если бы заказчик вдруг внезапно захотел бы писать тексты на русском, но движок оставить именно этот?

Цитата:
Вот кстати Юникод... хорошо ли работают функции strlen, substr, preg_match ??? без НЕДО-костылей и псевдофункций?


Для этого есть функции mb_strlen, md_substr. Прег-матч и так хорошо работает с юникодом, насколько помню. По крайней мере, там вроде как можно указать флаг, что кодировка неоднобайтная.

13
13 февраля 2011 года
RussianSpy
3.0K / / 04.07.2006
Цитата: Kesano
Откровенное хамство. Я тебе не хамил.


Никакого хамства - простая логика. Если человек задает такие вопросы как вы, не знает зачем нужен юникод - значит он еще не очень опытный. А поскольку он не очень опытный - его код не может быть оптимальным и компактным.


Так вот и зачем себе сношать мозг думая "буду я использовать ajax или не буду" если можно сразу ставить кодировку юникод и не париться с этим тем более что она по умолчанию поддерживается огромной кучей софта начиная от редактором заканчивая играми. Что заставляет держаться за морально устаревшую кодировку при это создавая самому себе проблему?

Цитата: Kesano

Вот кстати Юникод... хорошо ли работают функции strlen, substr, preg_match ??? без НЕДО-костылей и псевдофункций?
Только честно.
Многие (и я в их числе) сталкивался с проблемой работы строковых функций в ПХП, т.к. они расчитаны на однобайтовые кодировки...



У меня никаких абсолютно проблем не возникает. Вот еще одно доказательство недостатка у вас опыта (без обид - придет со временем). Как уже сказал UAS выше, есть мультибайтовые функции для работы со строками. В РНР6 обычные функции будут поддерживать все то же самое. К тому же дело не ограничивается одним только UTF-8. Например, кодировка файловой системы в Windows UTF-16LE.

Просто получается парадокс - с одной стороны вы пытаетесь идти в ногу со временем - верстаете в XHTML, пытаетесь там в ООП разобраться, а с другой стороны категорически не хотите расставаться с доисторической, морально устаревшей и неудобной кодировкой аппелируя только к тому, что текст на страничке будет весить не 3456 байт, а целых 4500.

369
13 февраля 2011 года
Kesano
451 / / 09.10.2007
Цитата: RussianSpy

Просто получается парадокс - с одной стороны вы пытаетесь идти в ногу со временем - верстаете в XHTML, пытаетесь там в ООП разобраться, а с другой стороны категорически не хотите расставаться с доисторической, морально устаревшей и неудобной кодировкой аппелируя только к тому, что текст на страничке будет весить не 3456 байт, а целых 4500.



Просто я использую то, что удобно.
И со старой самопальной 1251 мне (внезапно) работать удобней...

Я попробую, конечно, перейти на утф-8... не знаю что из этого получиться...
Надо потестить в работе с базой, выводом, стрингами...
Единственный очевидный плюс для меня это пока АЯКС...

13
13 февраля 2011 года
RussianSpy
3.0K / / 04.07.2006
Ну мультиязычные сайты намного проще делать на UTF-8, чем каждый раз менять кодировки: для русского языка одна, для китайского другая, для немецкого третья, греческого четвертая.

Единственной причиной того, что вы не понимаете плюсов юникода - это недостаточный опыт. Готов поспорить, что через несколько месяцев после перехода на юникода вы просто не будете понимать как вы раньше работали в 1251 и еще не хотели с нее уходить.
244
13 февраля 2011 года
UAS
2.0K / / 19.07.2006
Цитата: Kesano
Единственный очевидный плюс для меня это пока АЯКС...


При чем тут вообще аякс? Аякс что ли лучше работает, если в юникоде отправлять? Бред полный)

369
14 февраля 2011 года
Kesano
451 / / 09.10.2007
Цитата: UAS
При чем тут вообще аякс? Аякс что ли лучше работает, если в юникоде отправлять? Бред полный)



http://habrahabr.ru/blogs/webdev/17640/
Статья поясняющая что куда и как...
УАСь, кажется ты был поклонником jQuery (могу ошибаться, но кажется ты указывал мне на создание велосипедов с Аяксом).
Фича в том, что чтобы отправить данные АЯКСом в win-1251 нужно сломать себе мозг, или на приёме скриптом делать iconv...

По-этому я и прицепился к АЯКСу...

54K
14 февраля 2011 года
Inacondition
43 / / 17.01.2011
Исходя из всего выше сказанного, для тех у кого точно такая же проблема как у меня была, решение:

Edit=>Preferences
Category "New Document"
Default encoding: Юникод(UTF-8)
244
14 февраля 2011 года
UAS
2.0K / / 19.07.2006
Цитата:
Статья поясняющая что куда и как...


Я уж по началу испугался - вдруг чего пропустил и с какого перепугу это с win-1251 больше геморроя, чем с ютф8.
Для отправки аякса мозг ломать не надо и можно спокойно отправлять в windows-1251, и принимать их. Вся проблема в том, что просто используете encodeURI() и, скорее всего, json_en/decode (в пхп) - а они как раз работают только с ютф8. Поэтому делать заключение - ютф8 хорош только для аякса - глупо. Просто есть готовые функции и вам впадлу написать свой корректный обработчик win1251-текста на JS.

А теперь вернемся к главной проблеме. Вы сказали, что нафиг ютф8. А теперь смотрите - php6 уже должен быть полностью на ютф8, JS обязывает к использованию ютф8, некоторые современные IDE и языки программирования полностью переходят на utf8 (вспомнить тот же делфи, который недавно перешел, а про яву и дотнет подавно молчу). А вы все топчитесь на месте с мнениями "Нафиг-нафиг utf8, нам достаточно windows-1251".
А то, что всю систему держать на windows-1251, а AJAX слать на utf8 - ну это имхо бред с извращениями. Делайте уже везде utf8.

369
20 февраля 2011 года
Kesano
451 / / 09.10.2007
АУ, соседи!...
И всё же, как заставить preg_match() нормально работать с UTF-8???
поиск выдал /([a-z\x80-\xFF]+)/i...
Но я нихрена непонимаю, что там в ХЕКСЕ закодировано... Нет, безусловно, там а-я... Но тем не менее...
Есть не кривые способы? (пока не вышел PHP6)..

//------
Нашел mb_ereg_replace()...
З.ы., как узнать, что у меня данные именно в utf-кодировке???
З.Ы.Ы, помнится, ругали за использование старого eregi_replace, вместо preg_replace,.. какая разница между этими функциями?
366
21 февраля 2011 года
int
668 / / 30.03.2005
Так модификатор u для юникода же. А определение кодировки - mb_detect_encoding, но на коротких текстах не точно срабатывает. А может в принципе не точно срабатывает.
274
21 февраля 2011 года
Lone Wolf
1.3K / / 26.11.2006
Цитата: Kesano
АУ, соседи!...
И всё же, как заставить preg_match() нормально работать с UTF-8???
поиск выдал /([a-z\x80-\xFF]+)/i...
Но я нихрена непонимаю, что там в ХЕКСЕ закодировано... Нет, безусловно, там а-я... Но тем не менее...
Есть не кривые способы? (пока не вышел PHP6)..


([a-z\x80-\xFF]+)/iu http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php

Цитата: Kesano

З.ы., как узнать, что у меня данные именно в utf-кодировке???


А зачем это нужно? у тебя возможна как cp1251 так и UTF ?

Цитата: Kesano

З.Ы.Ы, помнится, ругали за использование старого eregi_replace, вместо preg_replace,.. какая разница между этими функциями?



http://www.php.net/manual/en/reference.pcre.pattern.posix.php

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог