Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   alert и Unicode 4 (https://javascript.ru/forum/misc/6554-alert-i-unicode-4-a.html)

faiq 04.12.2009 22:35

alert и Unicode 4
 
Здраствуйте,
Мне нужно чтобы javascript-овский alert работал с символами Unicode 4.
Допустим, мне нужно использовать нестандартный символ 'ə'.Я думал что мне поможет выражение типа alert(unescape(escape('символ_Unicode_4'))) ,но браузер вместо него отображает символ знака вопроса.
Заранее спасибо...

Gvozd 04.12.2009 23:05

задайте странице в качестве кодировки необходимую вам кодировку
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>йцуке</title>
<script type="text/javascript">
alert('ə');
</script>
</head>
<body>
</body>
</html>

faiq 04.12.2009 23:20

Спасибо,всё пашет...

subzey 05.12.2009 15:42

Добавлю лишь, что если есть вероятность, что при передаче или запуске кодировка «побьётся», то можно записать примерно так.
alert("\u0259")

Формат записи: "\u" и 4 шестнадцатеричных символа.
Более подробный пример:
alert("Encylop\u00E6dia Britannica")

faiq 05.12.2009 18:04

Ты привёл пример для одного символа,а где можно найти таблицу соотвествия и для других символов юникода.Мне больше подходит как раз этот вариант.Заранее спасибо...

faiq 05.12.2009 18:41

Я сам нашёл на странице http://translate.google.ru/translate...6newwindow%3D1

Мне больше всего как раз этот вариант и подошёл,только при нём впоследствии не возникает проблем с кодировкой и дальнейшей работой php скрипта.

Gvozd 05.12.2009 20:15

Цитата:

Сообщение от faiq
не возникает проблем с кодировкой

для того чтобы не было проблем, просто переведите все на UTF-8
все скрипты, базы, etc....
редактором/IDE пользуйтесь таким, чтобы по умолчанию юзал UTF-8 вообще, или умел делать это для проекта(например EClipse)

subzey 05.12.2009 20:21

(function(){
	var str = prompt('Строка: ');
	if (!str) return;
	var outstr = "";
	for (var i=0; i<str.length; i++){
		var c = str.charCodeAt(i);
		if (c < 32 || c > 127){
			outchar = c.toString(16);
			while (outchar.length < 4){
				outchar = "0" + outchar;
			};
			outstr += "\\u" + outchar;
		} else {
			outstr += str.charAt(i);
		};
	};
	alert(outstr);
})();

Генерируйте сколько влезет :)

subzey 05.12.2009 20:25

Gvozd,
в моей практике встречались сумасшедшие Оперы, которые отказывались запускать юзерскрипт если в нем есть русский язык. Даже на UTF8 и с явным указанием UTF8.

Gvozd 05.12.2009 20:30

subzey,
насколько это давно было?
в каких версиях?


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