Пыталась отредактировать страничку html c русским языком (Linux: редакторы gedit, pluma, Office Writer, StringLine2(последнее, возможно, неточно)). Изначально она набиралась в Блокноте (.txt). В браузерах всё отображается нормально. Но при попытке отредактировать в этих редакторах не отображается русский язык. При переводе в другую кодировку, например, кириллица (Windows), всё отображается, редактируется, но ошибка при сохранении. В каком-то из них сохранилось, но не отображается в обозревателе. Есть ли возможность редактирования (и создания) этими средствами? Если нет, то что посоветуете. С Linuxom столкнулась впервые. Благодарю заранее.
Для начала стоит узнать в какой кодировке эта страничка. И если не utf8, то пересохранить в эту кодировку. Я думаю с utf8 проблем быть не должно, на то он и utf8. Я так думаю. Не судите строго…
Спасибо за помощь. Вечером попробую.
Нет, в utf8 не отображается, только в кириллице. Ещё раз спасибо за желание помочь.
Посоветую перепробовать побольше разных редакторов, в том числе не брезговать проприетарным софтом. Хорошие примеры: Sublime Text, Brackets, Visual Studio Code... Или гугл.
Что до кодировки - конечно же перевести все шаблоны в utf-8, и не забывать добавлять
<meta charset="UTF-8" />
Спасибо. Но, вообще, на практике не сталкивалась, но слышала, что использование META с указанием кодировки иногда приводит к нечитаемости текста в некоторых браузерах. Поэтому стараюсь не пользоваться этой возможностью. Ещё раз спасибо. Творческих успехов.
Приводит, как раз, если не указывать / указывать неверно.
Ну, во-первыч, речь в исходном вопросе шла о проблеме в текстовых редакторах, а не в браузерах. А здесь есть варианты. Например, в NotePad++ я могу выбрать кодировку, а обычный блокнот, не заморачиваясь, использует Кириллицу. В Linuxовских редакторах тоже, как я убедилась, много особенностей. Во-вторых, с браузерами тоже не всё так просто. Понятно, что Юникод универсальная вещь и предпочтительная. Но, по большому счёту, годится любое стандартное кодирование символов, входящих в набор Юникода. Вопрос в том, в какой кодировке будет посылать сервер клиенту. А это определяется PHP-заголовком(есть ещё какие-то возможности), а отнюдь не МЕТА. МЕТА - описание для клиентских браузеров. Вот здесь может быть конфликт. По крайней мере, я так вижу этот вопрос. Буду рада и благодарна за ответ с возражениями. Хорошего Вам вечера.
Вот именно. Речь шла о подготовке HTML документа или шаблона. Делать их изначально лучше в UTF-8, либо переконвертировать в нее существующие.
Тут вообще лучше прислушаться к создателям технологий и законодателям. Например, к гуглу:
А также к World Wide Web Consortium:
Отправка заголовка - это уже следующий вопрос. Вопрос настройки фронтэнда или написания бэкэнд приложения. К слову, это никакой не 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 возможна.
Большое спасибо за информацию. Для меня здесь действительно есть новые и очень интересные моменты. Я обязательно детально ознакомлюсь и разберусь с ними после отпуска в августе. Вам тоже хорошего летнего отдыха.
Для Gedit который мною сильно любим есть решение, скопировать и выполнить в терминале.
gsettings set org.gnome.gedit.preferences.encodings auto-detected "['UTF-8', 'WINDOWS-1251', 'CURRENT', 'ISO-8859-15', 'UTF-16']"
И все отлично работает, решение подглядел в свое время тут
Огромное спасибо, действительно всё работает. Очень выручили. Желаю творческих успехов.
Отправить комментарий