Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему метод load выдает результат в другой кодировке? (https://javascript.ru/forum/misc/4367-pochemu-metod-load-vydaet-rezultat-v-drugojj-kodirovke.html)

khusamov 15.07.2009 17:30

Почему метод load выдает результат в другой кодировке?
 
Почему метод load выдает результат в другой кодировке?

$("div.filter-box").load("/filter.phtml");
	$("div.filter-box").show();


На локальном сервере работает нормально. А вот уже в интернете такие непонятные ошибки с кодировкой. В чем может быть дело???

Далее пример привожу, воспроизводящий эту ошибку:

khusamov 15.07.2009 17:40

Вот более простой пример этой ошибки:

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
		<title>{$title}</title>
		<script src="jquery.js" type="text/javascript" language="JavaScript"></script>
		<script language="JavaScript" type="text/javascript">
			$(document).ready(function(){
				$("button.load").click(function(){
					$("div.box").load("text.html");
				});
			});
		</script>
	</head>
	<body>
		
		<button class="load">Загрузить пример текста</button>
		
		<div class="box"></div>		
		
	</body>
</html>



text.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
	</head>
	<body>

		<p>Пример текста</p>
		
	</body>
</html>


И текст "Пример текста" в броузере проявляется вопросиками.

Kolyaj 15.07.2009 17:41

Сервер должен возвращать кодировку в http-заголовках ответа.

khusamov 15.07.2009 17:53

Попробую принудительно выводить кодировку в заголовках...

А почему на локальном работало нормальнО?

B~Vladi 15.07.2009 17:54

Цитата:

Сообщение от khusamov
А почему на локальном работало нормальнО?

Всё зависит от настроек сервера и PHP.

ЗЫ: Лучше использовать UTF.

khusamov 15.07.2009 17:56

А как сделать для локальных файлов? как в моем примере
там же нету заголовков сервера

B~Vladi 15.07.2009 17:59

Цитата:

Сообщение от khusamov
А как сделать для локальных файлов?

Что сделать?!

Мой вам совет: добавляйте принудительно заголовок с кодировкой. Лучше через .htaccess и всё будет ок;)

khusamov 15.07.2009 18:19

Заголовок проставил. Спасибо! Заработало.

А вот как быть для просто файлов. Я пример привел это три файла просто на диске. И не работает если 1251 кодировка.

B~Vladi 15.07.2009 18:23

Цитата:

Сообщение от khusamov
А вот как быть для просто файлов.

Всмысле для статичных html?
Цитата:

Сообщение от B~Vladi
через .htaccess


khusamov 15.07.2009 22:00

Хе... В общем представьте себе что у вас на ЛОКАЛЬНОМ диске лежат два файла: index.html и jquery.js Вот два раза щелкнув по первому файлу и получим то, о чем я говорю. Это не сайт. Но просто HTML-страница, открытая с диска. В которой тоже JS-код. Так понятней стало надеюсь?

B~Vladi 16.07.2009 15:14

Код html сохранён в той же кодировке, что и описана в мета теге?! И какая она?!

khusamov 16.07.2009 16:47

Цитата:

Сообщение от B~Vladi (Сообщение 24575)
Код html сохранён в той же кодировке, что и описана в мета теге?! И какая она?!

в той же

1251

khusamov 16.07.2009 16:47

Я же пример привел этих файлов.

Kolyaj 16.07.2009 16:50

khusamov,
на локальном диске все вообще может работать как угодно, а может вообще не работать. Для корректной работы должен быть сервер.


Часовой пояс GMT +3, время: 10:00.