Редактирование сайтов [Решено]

Пыталась отредактировать страничку html c русским языком (Linux: редакторы gedit, pluma, Office Writer, StringLine2(последнее, возможно, неточно)). Изначально она набиралась в Блокноте (.txt). В браузерах всё отображается нормально. Но при попытке отредактировать в этих редакторах не отображается русский язык. При переводе в другую кодировку, например, кириллица (Windows), всё отображается, редактируется, но ошибка при сохранении. В каком-то из них сохранилось, но не отображается в обозревателе. Есть ли возможность редактирования (и создания) этими средствами? Если нет, то что посоветуете. С Linuxom столкнулась впервые. Благодарю заранее.

+1
kot040188 - 15 Июнь, 2015 - 14:55
Изображение пользователя kot040188.

Для начала стоит узнать в какой кодировке эта страничка. И если не utf8, то пересохранить в эту кодировку. Я думаю с utf8 проблем быть не должно, на то он и utf8. Я так думаю. Не судите строго…

0
leo1 - 15 Июнь, 2015 - 17:21

Спасибо за помощь. Вечером попробую.

0
leo1 - 16 Июнь, 2015 - 17:37

Нет, в utf8 не отображается, только в кириллице. Ещё раз спасибо за желание помочь.

0
MacLeod - 15 Июнь, 2015 - 17:52
Изображение пользователя MacLeod.

Посоветую перепробовать побольше разных редакторов, в том числе не брезговать проприетарным софтом. Хорошие примеры: Sublime Text, Brackets, Visual Studio Code... Или гугл.
Что до кодировки - конечно же перевести все шаблоны в utf-8, и не забывать добавлять
<meta charset="UTF-8" />

0
leo1 - 30 Июнь, 2015 - 12:10

Спасибо. Но, вообще, на практике не сталкивалась, но слышала, что использование META с указанием кодировки иногда приводит к нечитаемости текста в некоторых браузерах. Поэтому стараюсь не пользоваться этой возможностью. Ещё раз спасибо. Творческих успехов.

0
MacLeod - 30 Июнь, 2015 - 13:03
Изображение пользователя MacLeod.

Приводит, как раз, если не указывать / указывать неверно.

0
leo1 - 30 Июнь, 2015 - 17:59

Ну, во-первыч, речь в исходном вопросе шла о проблеме в текстовых редакторах, а не в браузерах. А здесь есть варианты. Например, в NotePad++ я могу выбрать кодировку, а обычный блокнот, не заморачиваясь, использует Кириллицу. В Linuxовских редакторах тоже, как я убедилась, много особенностей. Во-вторых, с браузерами тоже не всё так просто. Понятно, что Юникод универсальная вещь и предпочтительная. Но, по большому счёту, годится любое стандартное кодирование символов, входящих в набор Юникода. Вопрос в том, в какой кодировке будет посылать сервер клиенту. А это определяется PHP-заголовком(есть ещё какие-то возможности), а отнюдь не МЕТА. МЕТА - описание для клиентских браузеров. Вот здесь может быть конфликт. По крайней мере, я так вижу этот вопрос. Буду рада и благодарна за ответ с возражениями. Хорошего Вам вечера.

+3
MacLeod - 2 Июль, 2015 - 05:04
Изображение пользователя MacLeod.

речь в исходном вопросе шла о проблеме в текстовых редакторах, а не в браузерах
Вот именно. Речь шла о подготовке HTML документа или шаблона. Делать их изначально лучше в UTF-8, либо переконвертировать в нее существующие.
Тут вообще лучше прислушаться к создателям технологий и законодателям. Например, к гуглу:
Используйте UTF-8 (без BOM).
Убедитесь, что ваш редактор использует кодировку UTF-8 без метки порядка байтов (BOM).
Указывайте кодировку в HTML шаблонах и документах с помощью <meta charset="utf-8">. Опускайте кодировку для сss-файлов: для них UTF-8 задана по умолчанию.
Источник и много других полезных рекомендаций.

А также к World Wide Web Consortium:
Save your pages as UTF-8.
Always declare the encoding of your document. Use the HTTP header if you can. Always use an in-document declaration too.
(Сохраните ваши документы/шаблоны как UTF-8.
Всегда задавайте кодировку вашего документа. По возможности используйте HTTP-заголовки. Также всегда используйте объявление внутри документа.)
Источник.

Отправка заголовка - это уже следующий вопрос. Вопрос настройки фронтэнда или написания бэкэнд приложения. К слову, это никакой не PHP-заголовок, а заголовок HTTP протокола. PHP-функция header() - лишь частный случай, когда бэкэнд добавляет строки в запрос перед телом (body). Это же самое можно делать из Node.js, Python, Ruby и т.д.
Если же раздается статика - с этой задачей лучше всего справляется фронтэнд, например Nginx (про который я писал), у которого, в принципе, есть модуль, который также умеет перекодирвать "на лету", хотя это лишняя нагрузка и лучше прислушаться к советам выше.
В самом печальном случае, даже на дешевом хостинге с богомерзким Apache, который уже настроен на какой-нибудь windows-1251, все равно есть возможность отключить его вмешательство через добавление "CharsetDisable on" в его тормозной .htaccess.
Что до конфликта - его не будет. Приоритет для браузера имеет переданный заголовок. А если соблюсти все три рекомендации (в документе, в meta и в заголовке) - вы гарантированно избежите проблем.
Ну, а что до редакторов - то Linux, MacOS или Windows тут особого значения не имеют, используйте лучшее, а оно, как правило, кроссплатформенное. Вот, оцените: http://www.youtube.com/watch?v=Fy9O96h4EBM, там еще и отладка Node.js возможна.

0
leo1 - 2 Июль, 2015 - 18:06

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

+1
Cyber_M - 16 Июнь, 2015 - 01:12
Изображение пользователя Cyber_M.

Для Gedit который мною сильно любим есть решение, скопировать и выполнить в терминале.

gsettings set org.gnome.gedit.preferences.encodings auto-detected "['UTF-8', 'WINDOWS-1251', 'CURRENT', 'ISO-8859-15', 'UTF-16']"

И все отлично работает, решение подглядел в свое время тут

0
leo1 - 30 Июнь, 2015 - 11:48

Огромное спасибо, действительно всё работает. Очень выручили. Желаю творческих успехов.

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры