@tryvols
Front-End разработчик

Как перевести юникод средствами js?

043946c9023f4b8c9c3132aaef74c824.PNG
  • Вопрос задан
  • 3082 просмотра
Пригласить эксперта
Ответы на вопрос 3
Alexufo
@Alexufo
противоречивый, сложный, весь компьютерный.
пересохраниьь файл в утф8 без бом
Ответ написан
Комментировать
@mikluha
ANSI C, Perl, Erlang. FreeBSD, Linux, Mac OS.
Тут у тебя не юникод, кодировка cp-1251, просто закодирован в urlencode. Для раскодирования воспользуйтя функцией unescape(), например unescape("%C8%EC%FF")
Ответ написан
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
У вас никакой не юникод. Очевидно, что вы работаете в кодировке CP-1251 (она же windows-1251).

Это не здорово, но и не смертельно, потому что независимо от кодировки нужно перед отправкой кодировать с помощью encodeURIComponent, а при получении декодировать с помощью decodeURIComponent.

Пы.Сы. Объясните мне, кто советует сохранять без сигнатуры, почему? Какова причина лишать браузер мощнейшего средства определения кодировки?

Вот так всё-таки можно перевести из строки в windows-1251 (хей, @rock :)

console.log(
	getRussian('%C8%EC%FF'),
	getRussian('%D1%EE%EE%E1%F9%E5%ED%E8%E5')
);

function getRussian (string) {
	return string.replace(/^%/, '').split(/%/).reduce(function (result, value) {
		return result += unescape('%u' + ('000' + (parseInt(value, 16) + 848).toString(16)).slice(-4));
	}, '');
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы