Кодировка файлов (UTF-8, Windows-1251)

Уроки по PHP, Javascript и т.п.

Кодировка файлов (UTF-8, Windows-1251)

Сообщение Александр » 31 мар 2012, 13:20

Кодировка файлов (UTF-8, Windows-1251)

В этой статье речь пойдёт о том какую кодировку стоит использовать на своих сайтах и в своих скриптах.


Популярные кодировки

В веб-разработке популярны кодировки Windows-1251 и UTF-8.

Windows-1251 (CP-1251)
В этой кодировке есть практически все символы, которые необходимы для русскоязычных сайтов. Некоторые спецсимволы и буквы из других языков отображаться не будут.

UTF-8
В этой кодировке содержаться практически все существующие символы.
Важный момент! UTF-8 может быть с сигнатурой (Byte Order Mark, BOM) или без сигнатуры.
Чтобы не возникали лишние проблемы, лучше использовать UTF-8 без BOM.


Какую кодировку использовать

Я рекомендую использовать кодировку UTF-8 без BOM.

Если требуется взаимодействие приложения с сервером посредством URLRequest в ActionScript или AJAX в JavaScript, то при работе с другой кодировкой могут возникать проблемы - вместо нормального текста будут приходить крякозябры.
ActionScript работает с данными в кодировке UTF-8. Чтобы работать с кодировкой Windows-1251 необходимо будет вручную преобразовывать текст.
В JavaScript при использовании UTF-8 без BOM тоже не появляются лишние проблемы с кодировкой.

Используйте для всех файлов кодировку UTF-8 без BOM. Для html, php, txt, js, css. Если работаете с базой данных, то храните в ней данные в кодировке UTF-8.
Если вы будете смешивать разные кодировки, то усложните свою работу.

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


Использование iconv в php

Многие начинающие и неопытные "программисты", не задумываются о кодировке и потом часто используют функцию iconv для преобразование текста в нужную кодировку.
Не стоит где попало использовать функцию iconv в php. Это затратная функция, она потребляет ресурсы сервера. Бывают случаи когда эту функцию надо использовать, но если вы используете её в каждом скрипте, то задумайтесь о том чтобы переделать проект под нужную кодировку.


Как поменять кодировку файла

Для того чтобы менять кодировку файлов, я рекомендую использовать Notepad++.
В обычном блокноте вы можете столкнуться с тем, что файлы будут сохраняться не в нужной кодировке (UTF-8 с BOM).

В меню Notepad++ есть пункт «Кодировки - Преобразовать в UTF-8 без BOM».
В настройках можно установить эту кодировку для новых файлов по умолчанию.

В нижней статус строке можно узнать текущую кодировку файла.


Настройки сервера

Иногда после изменений кодировки файла, при открытии файла загруженного на сервер, в браузера файл открывается не в той кодировке. Нужно изменить настройки сервера, чтобы он отдавал файлы в нужной кодировке.

Если есть доступ к настройкам через файл .htaccess, надо написать в нем


Если доступа к этому файлу нет, то возможно кодировку по умолчанию можно поменять в админке вашего хостера.

Если ни одной из этих возможностей нет, то задумайтесь о смене вашего хостера.

За это сообщение автора Александр поблагодарил:
Emeltil
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Автор темы
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

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

Google
 



Re: Кодировка файлов (UTF-8, Windows-1251)

Сообщение alexei » 31 мар 2012, 17:19

Не советую хранить .css, js без текста в UTF-8. Лучше использовать, что-то более легкое.
http://appslessons.com/ — Мой блог посвященный урокам приложений ВКонтакте
Аватара пользователя
alexei
Разработчик
Разработчик
 
Сообщения: 836
Зарегистрирован: 21 янв 2010, 19:44
Откуда: Rostov-on-Don
Благодарил (а): 5 раз.
Поблагодарили: 54 раз.

Re: Кодировка файлов (UTF-8, Windows-1251)

Сообщение Александр » 31 мар 2012, 18:06

alexei
css обычно содержит мало или вообще не содержит кириллицы. Больше такой файл в кодировке utf-8 весить не будет.
Тоже самое и с js, если не содержит кириллицы, то и объем не будет больше. А вот если страница в UTF-8, а js в cp1251 и в js код выводит кириллический текст, то будут проблемы с кодировкой.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Автор темы
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Re: Кодировка файлов (UTF-8, Windows-1251)

Сообщение alexei » 31 мар 2012, 18:23

Александр писал(а):alexei
css обычно содержит мало или вообще не содержит кириллицы. Больше такой файл в кодировке utf-8 весить не будет.
Тоже самое и с js, если не содержит кириллицы, то и объем не будет больше. А вот если страница в UTF-8, а js в cp1251 и в js код выводит кириллический текст, то будут проблемы с кодировкой.

Обычно любят кириллические комментарии.
http://appslessons.com/ — Мой блог посвященный урокам приложений ВКонтакте
Аватара пользователя
alexei
Разработчик
Разработчик
 
Сообщения: 836
Зарегистрирован: 21 янв 2010, 19:44
Откуда: Rostov-on-Don
Благодарил (а): 5 раз.
Поблагодарили: 54 раз.


Вернуться в Уроки на другие темы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron