У меня есть переменная javascript, которая хранит URL. Я должен отправить этот URL-адрес бэкэнду для выполнения некоторых операций, и, поскольку URL-адрес может содержать специальные символы, я преобразовываю его в шестнадцатеричное, чтобы избежать проблем. Код бэкэнда не мой, я даже не вижу код.
Кодирование работало нормально, когда я пытался использовать IP-адреса, например, если я хочу отправить «192.168.1.1» в JavaScript, я кодирую его в «3139322e3136382e312e31» и бэкэнд прекрасно его понимает.
Проблема возникает, когда я пытаюсь использовать домен, тогда ожидаемый серверный бэкэнд и отправляемое сообщение не совпадают. Если я хочу отправить «cstmal» в JavaScript, я кодирую его в «6373746d616c», но сервер ожидает «7066677A6e79».
Что не так? Я много смотрел, но не могу найти ответ.
Код, который я использую для кодирования:
function encode(str) {
var result = "";
for (var i = 0; i < str.length; i++) {
result += str.charCodeAt(i).toString(16);
}
return result;
}
Короче, знаете ли вы, какое преобразование символов дает такие результаты:
с = 70
с = 66
t = 67
м = 7А
а = 6Е
l = 79
Спасибо!