Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   получить код символа (https://javascript.ru/forum/misc/12894-poluchit-kod-simvola.html)

megapup 07.11.2010 19:05

получить код символа
 
нужно получить код символа в unicode
к примеру из "н" (русская н) получить "43d"

пробую
String("н").charCodeAt(0).toString(16)
получается "420" :-?

скрипт в файле utf-8 а сама страница ANSI

exec 07.11.2010 19:13

<script type='text/javascript'>
	alert("н".charCodeAt().toString(16));
</script>


Всё нормально по-моему.

megapup 07.11.2010 19:30

это потомучто страница этого форума в кодировке UTF-8
а вот сдесь допустим выдает 43f (хотя в опере 43d)
http://home.sampo.ru/~holden/testcode/testcode.htm

megapup 07.11.2010 19:34

43f потому что сервак там выдает header Content-Type KOI8-R :)
вообщем мне вот как рас нужно не зависеть от кодировки страницы

Aetae 08.11.2010 00:58

А чем старый добрый escape() плох?)

Kolyaj 08.11.2010 08:59

megapup,
JavaScript не зависит от кодировки страницы, он оперирует всегда с Unicode (что есть не кодировка, а таблица символов). Если вы сделаете alert('н') и увидите на экране действительно букву н, тогда и код у неё будет правильный.

megapup 08.11.2010 12:19

Aetae, не работает, выдает %u043F%u256B
Kolyaj, и что из этого следует? как получить верный код?

Kolyaj 08.11.2010 12:26

Из этого следует, что вопросами кодировок занимается браузер, а не JavaScript, и пытаться решить проблему с кодировками на JavaScript бесполезно. Или отдавайте правильные заголовки, чтобы браузер понимал, в какой кодировке ваш скрипт, или пишите исходники только с латинскими символами.

megapup 08.11.2010 12:35

ну я ведь знаю в какой кодировке скрипт :)

Kolyaj 08.11.2010 12:38

Важно, знает ли об этом браузер. Поэтому не забывайте сообщать ему об этом в HTTP-заголовках.

Важное замечание: IE6 не умеет использовать на одной странице ресурсы в разных кодировках. Поэтому если у вас страница в кодировке X, то и все внешние скрипты/стили должны быть также в кодировке X. Для остальных браузеров это не критично, главное в заголовках кодировку указывать.


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