Какую кодировку символов используют в бэкэнде? - PullRequest
0 голосов
/ 21 января 2012

У меня есть переменная 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

Спасибо!

Ответы [ 2 ]

0 голосов
/ 22 января 2012

Как бы странно это не звучало, данные выглядят в кодировке rot-13.Например, cstmal становится pfgzny в rot-13 , и когда вы заменяете символы их кодами Ascii на две шестнадцатеричные цифры, вы получаете 7066677A6e79.Реализация JavaScript проста, но смотрите, например, 4umi Rot13 .

0 голосов
/ 21 января 2012

AFAIK большинство кодировок используют одинаковые коды для буквенно-цифровых символов (диапазон 1-128), поэтому, если он работает для чисел, он должен работать и для символов z.Если вы знаете, какой код возвращает сервер для каждой буквы, вы можете создать собственное отображение, например, создать объект {'c': '70', 's': '66', ...} и использовать его для кодирования строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...