Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Проблема с кодировками скрипта (https://javascript.ru/forum/events/35530-problema-s-kodirovkami-skripta.html)

Zim_one 13.02.2013 20:29

Проблема с кодировками скрипта
 
Здравствуйте, появилась большая (для меня) проблема. При подключении на сторонний сайт яваскрипта (<script src="путь на страницу моего сайта"></script>) он работает не коректно. Проблема в том что мой сайт написан на ютф8, а сайт где отображаетса скрипт в другой кодировке, так как в скрипте есть русские слова то они не отображаются коректно и следовательно скрипт не рабочий (в скрипте присутсвует функция replace которая меняет одно слово на другое...). Подскажите пожалуйста как узнать кодировку сайта на котором должен работать скрипт? Или может можно какимто образом прописать русское слово в нескольких кодировках каждое отдельно? (вариант спросить кодировку сайта у владельца не подходить, нужно автоматом это делать)
Зарание благодарен, прошу простить за ошибки в тексте, у нас не учать русский:).

Deff 13.02.2013 20:35

cкрипты обычно хранятся в UTF <script src="путь на страницу моего сайта"></script>
Cкорее всего это Вы исходник скрипта сохранили в Ansi
Cохраняйте скрипт через блокнот в UTF-8 на компутере, потом только подгружайте на сайт

Zim_one 15.02.2013 00:41

Проблема не в этом, у меня яваскрипт в ютф8. Но если сторонний сайт (который не на ютф8) подключит мой скриптовый файл (который на ютф8) то он не будет корректно работать. Как с этим справится?

Deff 15.02.2013 00:42

Zim_one,
странно - где ваш скрипт - я его выведу тут (Тут
Файл скрипта с контентом
alert("Привет!")

dmitriymar 15.02.2013 00:56

Цитата:

Сообщение от Zim_one
Проблема не в этом, у меня яваскрипт в ютф8. Но если сторонний сайт (который не на ютф8) подключит мой скриптовый файл (который на ютф8) то он не будет корректно работать. Как с этим справится?

стандарт говорит в какой кодировке тексты скриптов обрабатываются там их не 10 и даже не 2-а одна однозначная. "пресечение" кодов символов в различных кодировках дело другое. не придумывайте отсебятину.
http://tanalin.com/blog/2007/07/external-file-encoding/ и гуглом научитесь пользоваться.

danik.js 15.02.2013 00:57

http://www.w3schools.com/tags/att_script_charset.asp

Zim_one 15.02.2013 00:57

function addlinks(){
das = /автомобиль/ig;
	ast2 = document.body.innerHTML.replace(das,\'<a href=\"#\" $code_class style=\"$code_color $code_shrift $code_size $code_width $code_textdecoration\" onmouseover=\"qwe();\" onmouseout=\"ewq();\">автомобиль</a>\');
	document.body.innerHTML=ast2;
}
	
	var abc = document.createElement(\'div\');
	abc.id=\"asd\";
	abc.innerHTML = \"<center>\"+banerorimage000111+\"</center>\";
	abc.style.position=\"absolute\";
	abc.style.left=\"-1000000px\";
	abc.style.width=\"100%\";
	abc.style.height=\"\";
	abc.style.backgroundColor=\"\";
	abc.onmouseover=qwe1;
	abc.onmouseout=ewq;
	document.body.appendChild(abc);
}



function qwe(){
	document.getElementById(\'asd\').style.left=\"0px\";
	if(mouseY>400){
		document.getElementById(\'asd\').style.top=mouseY - 300 + \"px\";
	}
	else{
		document.getElementById(\'asd\').style.top=mouseY + 200 + \"px\";
	}
	 aqwe = 1;
}
function ewq(){
	setTimeout(function(){
		if(aqwe !== 1){
			document.getElementById(\'asd\').style.left=\"-1000000px\";
		}
	}, 2000);
		 aqwe = 0;
}

function qwe1(){
	aqwe=1;
}

function mouseEventqwe(eqwe){
	eqwe = window.event || eqwe;
	mouseY=eqwe.clientY + (document.documentElement && document.documentElement.scrollTop || document.body && document.body.scrollTop || 0);
}
if(addEventListener){
	window.addEventListener(\"mousemove\",mouseEventqwe,false);
        window.addEventListener(\"load\",addlinks,false);
}
else{
	window.attachEvent(\"mousemove\",mouseEventqwe);
        window.attachEvent(\"load\",addlinks);
}


там много слешей, некогда щас удалять и возможно еще пхп отрывки кода(нужно бежать). сам скрипт рабочий 100%, но вот ключевое слово "автомобиль" которое должно сменится ссылкой на чужом сайте(не ютф8) будет крокозяброй. Я щяс подумал передавать это слово через ГЕТ параметр в код, вместо вытягивания из БД, может сработает.

dmitriymar 15.02.2013 01:05

Цитата:

Сообщение от Zim_one
Я щяс подумал передавать это слово через ГЕТ параметр в код, вместо вытягивания из БД, может сработает.
Ответить с цитированием

нет не сработает -будет попытка перевести в кодировку страницы.
Цитата:

Сообщение от Zim_one
подключит мой скриптовый файл (который на ютф8) то он не будет корректно работать

не путайте работу скрипта и отображение браузером-это вещи разные

Deff 15.02.2013 01:15

javascript.ru в кодировке windows-1251

Загружаю UTF-8
<!DOCTYPE HTML>
<html>
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<script type="text/javascript" src="http://hostjs-mybb2011.narod.ru/js/asdsa.js?5"></script>
</head>
  <body>

  </body>
</html>

dmitriymar 15.02.2013 01:22

Цитата:

Сообщение от Deff
avascript.ru в кодировке windows-1251

Загружаю UTF-8
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<script type="text/javascript" src="http://hostjs-mybb2011.narod.ru/js/asdsa.js"></script>

вывод в страницу, а не в алерт. да и есть частичное пересечение. в сообщение все буквы русского алфавита


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