Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.03.2015, 16:10
Интересующийся
Отправить личное сообщение для Arcoslov Посмотреть профиль Найти все сообщения от Arcoslov
 
Регистрация: 09.03.2015
Сообщений: 15

Rfr bpvtybnm document.defaultCharset ?
Всем привет!
Помогите, пожалуйста, разобратсья!

alert(document.defaultCharset); выдаёт windows-1252.
Почему он показывает 1252 и как установить utf8?

Когда я передаю жаваскриптом данные методом $.post с одной страницы на другую, то другая страница славливает их как 1252 (т.е. кракозябры приходят), хотя обе страницы в utf8, а htaccess прописано AddDefaultCharset UTF-8 и в head прописано <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Гугл говорит, что document.defaultCharset это неизменяемый параметр, но никак не могу понять его суть, что он отображает и откуда он это берёт и как это изменить

Ответить с цитированием
  #2 (permalink)  
Старый 09.03.2015, 16:25
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Вы не то проверяете - defaultCharset у каждого браузера и ОС будет различен, это набор символов по умолчанию. Например в IE d Windows русской локализации defaultCharset будет равно windows 1251. А кодировка документа переданная заголовком (htaccess прописано AddDefaultCharset UTF-8 - сервер определяет, метатег можно собственно и опустить) или meta, это document.charset - что это у вас показывает?
Ответить с цитированием
  #3 (permalink)  
Старый 09.03.2015, 16:37
Интересующийся
Отправить личное сообщение для Arcoslov Посмотреть профиль Найти все сообщения от Arcoslov
 
Регистрация: 09.03.2015
Сообщений: 15

document.charset показывает utf8.
Ответить с цитированием
  #4 (permalink)  
Старый 09.03.2015, 16:39
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Вот это и есть кодировка документа. Отображение верное в документе?
Ответить с цитированием
  #5 (permalink)  
Старый 09.03.2015, 16:46
Интересующийся
Отправить личное сообщение для Arcoslov Посмотреть профиль Найти все сообщения от Arcoslov
 
Регистрация: 09.03.2015
Сообщений: 15

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

Непосредственно перед сабмитом, данные, введённые в форму, в первом файле отображаются нормально, если их вывести, например, алертом. Если же во втором файле первой строчкой сделать print_r($_REQUEST), то видно, что приходят кракозябры.

В первом файле конструкция отправки такая:
...
		$.post( '".$site."operations.php?page=order',form,
		function(answer,post_status)
		{
			if(post_status!='success')
				alert('Ошибка. Операция не выполнена.');
			else
				if(answer)
					send_goods(answer);
		});
Ответить с цитированием
  #6 (permalink)  
Старый 09.03.2015, 16:48
Интересующийся
Отправить личное сообщение для Arcoslov Посмотреть профиль Найти все сообщения от Arcoslov
 
Регистрация: 09.03.2015
Сообщений: 15

p.s. у меня на трёх разных компах с разными ОСями везде показывает alert(document.defaultCharset); выдаёт windows-1252, даже в ie.
Может, это всё-таки какой-то серверный параметр?
Ответить с цитированием
  #7 (permalink)  
Старый 09.03.2015, 16:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Вы путаете все - данные с клиента серверу будут переданы в той кодировке, в которой у вас работает страница (пусть у вас это через метатег определено, и как показываела проверка, это UTF8), alert(возвращенного $_REQUEST, хотя нафиг он вам нужен, если вас интересует только print_r($POST, true)), будет отображать в той кодировке, в которой вернул их серверный скрипт обрабатывающий запрос $.post.
Ответить с цитированием
  #8 (permalink)  
Старый 09.03.2015, 16:58
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Может, это всё-таки какой-то серверный параметр?

Нет такого параметра у севера, сервер не заведует документом на клиенте, он его отдает ему. Нашел специально, причем отличный источник, хотя на нынешнее время и старый Дени Гудман, Майкл Морисон "JavaScript Библия пользователя", что это означает. Проблему ищите на сервере, добавьте перед отправкой возвращаемых клиенту данных заголовок с указанием кодировки и проверьте после этого (страницу по ссылке только прокрутить чуток надо, чтобы все прочесть и почесать темечко).
Ответить с цитированием
  #9 (permalink)  
Старый 09.03.2015, 17:45
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Жмешь F12, смотришь вкладку сеть, ищешь там в Resonse Headers заголовок Content-Type, смотришь какой в нем charset. Если не utf-8 - значит не настроил apache (.htaccess) или перезатер через header() в php.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #10 (permalink)  
Старый 09.03.2015, 18:02
Интересующийся
Отправить личное сообщение для Arcoslov Посмотреть профиль Найти все сообщения от Arcoslov
 
Регистрация: 09.03.2015
Сообщений: 15

Сообщение от danik.js
Жмешь F12, смотришь вкладку сеть, ищешь там в Resonse Headers заголовок Content-Type, смотришь какой в нем charset. Если не utf-8 - значит не настроил apache (.htaccess) или перезатер через header() в php.
Resonse Headers словил как charset=iso-8859-1, она же windows-1252.
о_О
в php у меня нигде headers функции нету. проверил ещё раз на всякий, нету.
в чём же косяк может быть?

Последний раз редактировалось Arcoslov, 09.03.2015 в 18:05.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск