В некоторых браузерах неправильно отображается кодировка
Добрый день уважаемые!
Требуется Ваша помощь. Сам справиться не могу. Проблема такая. На сайте есть форма обратной связи на html, php. Если какое-то поле не заполнено и нажимается кнопка Отправить, то появляется не большое, как бы всплывающее, окошко с фразой на русском языке, о том, что надо заполнить это поле. За эти окошки и текстом в них отвечает javascript файл. Так вот: Браузер Google Chrome всегда выдает эти окошки с русским текстом, а вот в FireFox, Edge и Internet Explorer 11, периодически именно в этих окошках слетает кодировка - дней 5 везде нормально, потом вместо русских символов ромбики, а потом через несколько дней опять нормально. И так по кругу. Все страницы сайта в windows-1251. В корне сайте в .htaccess в самом верху строка AddDefaultCharset windows-1251. Создал в директории, где находится этот файл js еще один .htaccess с выше указанной строкой. Ни чего не помогло. В самом файле (он на html, а обработчик на php) формы обратной связи, там где начинается форма есть строка <script language="JavaScript" type="text/JavaScript" charset="windows-1251" src="zapoln_formi.js"></script> А в Google Chrome всегда все нормально. Помогите пожалуйста избавиться от слета кодировки в этих браузерах. Сам сайт http://fanatgusyatnik.ru. Проверить можно так: заходите на сайт, сверху справа нажимаете "Написать мне письмо", попадаете в форму обратной связи и ни чего не заполняя в ней нажимаете "Отправить", появится всплывающее окно с ромбиками вместо фразы Введите Ваше имя! Если какие исходники нужны - скажите, выложу. |
svp,
ошибка не проявилась, но замените в zapoln_formi.js функцию hilite на это function hilite(field) { // подсветить пустое поле, чтобы заполнил пользователь document.my_form.elements[field].style.backgroundColor="#AEC6DE"; } |
Цитата:
Почему так? Заменил как Вы посоветовали. И страницу с формой перезагружал и кзш браузера очищал - результат тот же, ромбики. Пока вернул старый zapoln_formi.js. А в Гугл все нормально. |
Цитата:
|
Цитата:
|
svp,
результат должен был быть в подсветке ошибочного поля -- но раз вам ненужно Цитата:
|
svp,
попробуйте заменить файл целиком на это function hilite(field) { document.my_form.elements[field].style.backgroundColor = "#AEC6DE" } function testData() { if (document.my_form.elements["Name_user"].value == "") { alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0412\u0430\u0448\u0435 \u0438\u043c\u044f!\t\n"); hilite("Name_user"); document.my_form.elements["Name_user"].focus(); return false } if (document.my_form.elements["E_mail"].value == "") { alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 E-mail!\t\n"); hilite("E_mail"); document.my_form.elements["E_mail"].focus(); return false } if (document.my_form.elements["Subject"].value == "") { alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0442\u0435\u043c\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f!\t\n"); hilite("Subject"); document.my_form.elements["Subject"].focus(); return false } if (document.my_form.elements["Message"].value == "") { alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0412\u0430\u0448\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435!\t\n"); hilite("Message"); document.my_form.elements["Message"].focus(); return false } if (document.my_form.elements["keystring"].value == "") { alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u0447\u043d\u044b\u0439 \u043a\u043e\u0434!\t\n"); hilite("keystring"); document.my_form.elements["keystring"].focus(); return false } }; |
Сейчас зашел и опять все нормально со старым моим файлом.
Ни чего понять не могу. Поставил Ваш новый файл. С ним тоже все нормально с кодировкой и действительно незаполненные поля стали подсвечиваться. Убрал Ваш новый и поставил свой старый. Буду ждать первого слета кодировки и потом поменяю на Ваш. Интересно восстановится ли кодировка с Вашим, а сейчас не поймешь - исправилось или нет, он и с моим старым заработал. У меня к Вам большая просьба. На этом сайте есть еще форма покупки сделанная на основе этой формы обратной связи, только добавлено одно поле и фразы в некоторых этих окнах изменены. Не могли бы Вы и для этого zapoln_formi.js написать новый скрипт? На любом товаре, в магазине, нажать кнопку КУПИТЬ и Вы в этой форме. Я так понял, что у Вас русские символы в нем как-то закодированы, а я вообще-то ни бум-бум в java. Да и БОЛЬШОЕ СПАСИБО ВАМ! |
Цитата:
P.S. У меня в опциях была снята галочка с Авто определения кодировки, включил авто определение и действительно Macintosh. |
svp,
вам описали причину -- пост №8 , сохраняйте все файлы в одной и тойже кодировке Цитата:
function hilite(field) { document.my_form.elements[field].style.backgroundColor = "#AEC6DE" } function testData() { if (document.my_form.elements["Name_user"].value == "") { alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0412\u0430\u0448\u0435 \u0438\u043c\u044f!\t\n"); hilite("Name_user"); document.my_form.elements["Name_user"].focus(); return false } if (document.my_form.elements["E_mail"].value == "") { alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 E-mail!\t\n"); hilite("E_mail"); document.my_form.elements["E_mail"].focus(); return false } if (document.my_form.elements["Subject"].value == "") { alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043d\u043e\u043c\u0435\u0440 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u043e\u0433\u043e \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430!\t\n"); hilite("Subject"); document.my_form.elements["Subject"].focus(); return false } if (document.my_form.elements["Subject"].value == "") { alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043d\u043e\u043c\u0435\u0440 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u043e\u0433\u043e \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430!\t\n"); hilite("Subject"); document.my_form.elements["Subject"].focus(); return false } if (document.my_form.elements["Address"].value == "") { alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0430\u0434\u0440\u0435\u0441 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438!\t\n"); hilite("Address"); document.my_form.elements["Address"].focus(); return false } if (document.my_form.elements["Message"].value == "") { alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u0430 \u0438 \u0435\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e!\t\n"); hilite("Message"); document.my_form.elements["Message"].focus(); return false } if (document.my_form.elements["keystring"].value == "") { alert("\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u0447\u043d\u044b\u0439 \u043a\u043e\u0434!\t\n"); hilite("keystring"); document.my_form.elements["keystring"].focus(); return false } }; |
Цитата:
Преобразовываю в UTF-8 Без ВОМ, преобразовывает, в низу UTF-8, закрываю с сохранением. Открываю его снова, кодировка UTF-8, преобразовываю в ANSI, внизу пишет кодировка Макинтош. Не могу преобразовать в 1251. За скрипт еще раз БОЛЬШОЕ СПАСИБО!!!. Там у меня правда ошибка - 2 раза описано одно и тоже окно (о контактном телефоне), но я разберусь с этим. А вот преобразование макинтош в 1251 ни как не получается. |
Нет. Все правильно. Эти мои zapoln_formi.js в кодировке ANSI.
В сети пишут, что Notepad++ ошибается в кодировке если у него стоит автоопределение. Отменил автоопределение и Notepad определил, что это ANSI. Открыл эти файлы в браузере и там тоже, в Вид, Кодировка текста стоит Кириллица (Windows). Так что буду ждать слета кодировки и заменять на скрипты рони. рони Еще раз большое Вам спасибо! |
Цитата:
Установил Ваши настройки. Сделал по Вашему 2-му варианту. Когда после вырезки и выбора кириллицы вставил, то справа внизу редактора появилось windows-1251. Слетело несколько русских символов, отредактировал их. Файл - Сохранить не активна, тогда Сохранить как.. Смотрю его размер - не изменился. Открываю этот сохраненный - внизу макинтош. Снимаю автоопределение - ANSI. В сети многие жалуются, что Notepad часто ошибается при автоопределении кодировки и в часности вместо Кириллицы 1251 часто пишет Макинтош. И пишут, что самый надежный способ узнать кодировку, это открыть этот файл в браузере и посмотреть какую он определил кодировку у этого файла. |
Цитата:
Этот файл js преобразовал в utf-8 без BOM, в htm файле формы в строке скрипта изменил windows-1251 на utf-8, залил, удалил из этой директории файл .htaccess, зашел, очистил кэш, перезагрузил страницу с формой и получил снова ромбики. Вернул все как было. P.S. Наверное эти ромбики появились потому, что в основном .htaccess стоит 1251, а я изменил на utf. Попробую снова перекодировать этот js в utf-8, создать отдельную для него папку в директории, в которой он расположен, поместить этот js в нее, изменить путь к нему и в эту же папку поместить специально для него еще один .htaccess с utf-8. А проще всего поставить скрипт от рони и без дополнительного .htaccess, но когда слетит кодировка. |
Сделал как писал выше - перекодировал в utf-8 и положил его в отдельную папку со своим .htaccess с utf-8. Все нормально, ромбиков нет.
Буду ждать, как слетит (если слетит) заменю на от рони. |
Часовой пояс GMT +3, время: 17:54. |