String.fromCharCode((x >> y) | z) операция?
Я работал с URL и URI, и у меня есть вопрос, касающийся функции, которую я использовал для кодирования / декодирования.
Я посмотрел в Интернете и нашел функцию для правильного кодирования моего кода, используя в основном метод String.fromCharCode(). Но вопрос о переданных параметрах.
У меня есть что-то вроде этого:
_utf8_encode : function (string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
}
else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
}
Меня беспокоит то, что операции внутри парентезы. Я провел несколько тестов со значением c, чтобы понять, смогу ли я прийти к какому-либо заключению, но мои усилия были напрасны. Кто-нибудь знает, что означают эти операторы (если я могу их так называть '>>', '&', '|')?
Обратите внимание, что функция работает, я просто хотел ее правильно понять.
Спасибо большое! До свидания!