Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Какая кодировка "правильнее" всего?
 
 автор: zateinik   (30.11.2007 в 11:12)   письмо автору
 
 

Столкнулся с проблемой выбора кодировки для сайта. Проблема в том что данные введенные в форму и прошедшие обработку PHP скриптом отображаются крокозябрами, меняю и так и так и вообще непойму как правильно выставлять кодировку страниц и скриптов.

Есть кодировка самого файла а есть кодировка выставляемая тегом, вот в них 2-х у меня путаница.

Допустим кодировка файла utf-8 а кодировка заданная тегом win-1251, это страница с формой, в какой кодировке передадутся скрипту данные? В какой кодировке при этом должен быть скрипт?

И вообще, профессионалы, посоветуйте пожалуйста или опишите какую кодировку вы используете (и файла и в метатеге) при создании скриптов? Какая кодировка самая безопасная в плане беспроблемности будущего размещения на хостингах (а то было дело переписывал весь текст)

Заранее спасибо!

   
 
 автор: cheops   (30.11.2007 в 11:21)   письмо автору
 
   для: zateinik   (30.11.2007 в 11:12)
 

Если у вас кодировка файла utf-8 в тэге <META> также следует указывать именно эту кодировку - тэг не изменяет кодировку файла, он информирует о том, какую кодировку имеет файл.

PS Правильно использовать кодировку utf-8, удобнее cp1251.

   
 
 автор: Zateinik   (30.11.2007 в 11:29)   письмо автору
 
   для: cheops   (30.11.2007 в 11:21)
 

Ммм, когда я использую везде utf-8 появляются проблемы с русскими символами принятыми из формы, после последовательной обработки trim(), strtolower() и ucwords() они становятся крокозябрами, поменял кодировку с utf-8 на utf-8 но с использованием BOM (кстати, что такое BOM?) крокозяблы превращаются в красивые ромбики с вопросами :)

При использовании win-1251 такого не происходит, спасибо за совет! Но почему такая фигня если utf-8 самая универсальная кодировка? По идее с ней вообще проблем быть не должно? Или я неправ насчет универсальности?

   
 
 автор: sim5   (30.11.2007 в 11:35)   письмо автору
 
   для: Zateinik   (30.11.2007 в 11:29)
 

Все потому, что многие строковые функции не работают со строками в многобайтной кодировке. Для них нужно использовать функции мультибайтных строк.

   
 
 автор: Zateinik   (30.11.2007 в 11:37)   письмо автору
 
   для: sim5   (30.11.2007 в 11:35)
 

Что есть многобайтные кодировки и мультибайтные?

   
 
 автор: sim5   (30.11.2007 в 11:40)   письмо автору
 
   для: Zateinik   (30.11.2007 в 11:37)
 

А что такое UTF-8 по вашему? Если в кодировке 1251 используется один байт на сивол, то в UTF-8 два.

   
 
 автор: Zirkon   (30.11.2007 в 13:28)   письмо автору
 
   для: Zateinik   (30.11.2007 в 11:29)
 

Попробуй перевести текст в windows-1251, сделать с ним все необходимые действия, и перевести обратно в utf-8. Должно быть все нормально.

   
 
 автор: KPETuH   (30.11.2007 в 11:28)   письмо автору
 
   для: zateinik   (30.11.2007 в 11:12)
 

до недавнего времени использовал 1251, сейчас перешел на utf-8 столкнулся с некоторыми сложностями но в общем то смог их обойти и не сильно то жалею что перешел на новыю кодировку :)

   
 
 автор: Zateinik   (30.11.2007 в 11:31)   письмо автору
 
   для: KPETuH   (30.11.2007 в 11:28)
 

А почему ты перешел на новую кодировку? Что сподвигло?

Мне главное чтоб потом при использовании всего этого дела в инете на хостинге не возникло проблем.

   
 
 автор: KPETuH   (30.11.2007 в 11:41)   письмо автору
 
   для: Zateinik   (30.11.2007 в 11:31)
 

сподвигла мультиязычность...

   
 
 автор: coloboc66   (30.11.2007 в 11:32)   письмо автору
 
   для: KPETuH   (30.11.2007 в 11:28)
 

UTF-8 - самая универсальная. Она работает и с кириллицей, и с латиницей, и сотовые телефоны её понимают. Но есть некоторые сложности с её использованием, если до этого привык к windows-1251, и если на хостинге русский апач.
Я пишу скрипты в текстовом редакторе Akelpad. Он хорош тем, что программисту показывет текст в удобной для него кодировке (например ANSI кириллица), а созраняет текст в заданной (например UTF-8). Что очень важно - он позволяет сохранять файлы в UTF-8 без маркера BOM. Этот BOM не нужен, он только вредит.

   
 
 автор: Zateinik   (30.11.2007 в 11:39)   письмо автору
 
   для: coloboc66   (30.11.2007 в 11:32)
 

Аналогично использую AkelPad, оч хорошая весчь.

А можно поподробнее про BOM?

   
 
 автор: coloboc66   (30.11.2007 в 11:53)   письмо автору
 
   для: Zateinik   (30.11.2007 в 11:39)
 

Это три служебных байта в начале файла. По идее, они указываю программе обработчику, что файл находится в кодировке UTF. Но на деле для UTF-8 они только всё дело портят, мешают отправке заголовков. Их надо убирать.

   
 
 автор: KPETuH   (30.11.2007 в 12:06)   письмо автору
 
   для: coloboc66   (30.11.2007 в 11:53)
 

использую PHPed в нем не нашел ничего про ВОМ но все работает без проблем :)

   
 
 автор: Zateinik   (30.11.2007 в 12:08)   письмо автору
 
   для: KPETuH   (30.11.2007 в 12:06)
 

значит он изначально без BOM сейвит :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования