Как изменить кодировку переменной



  • Суть проблемы: У меня в переменную записывается ник пользователя на русском языке, например "Администратор", а в GET запросе я должен передать эту переменную в кодировке "%C0%E4%EC%E8%ED%E8%F1%F2%F0%E0%F2%EE%F0".
    Подскажите, как это сделать?



  • @teslenko2603 said in Как изменить кодировку переменной:

    Суть проблемы: У меня в переменную записывается ник пользователя на русском языке, например "Администратор", а в GET запросе я должен передать эту переменную в кодировке "%C0%E4%EC%E8%ED%E8%F1%F2%F0%E0%F2%EE%F0".
    Подскажите, как это сделать?

    Используйте метод urlencode()



  • @Fox если можно, чуть подробнее



  • @teslenko2603 said in Как изменить кодировку переменной:

    @Fox если можно, чуть подробнее

    894.xml



  • @Fox ага суть я понял. Но в своем примере я указал реальный код "%C0%E4%EC%E8%ED%E8%F1%F2%F0%E0%F2%EE%F0", который я должен получиль от слова "Администратор". Для этого какой метод нужно использовать?



  • @teslenko2603 said in Как изменить кодировку переменной:

    @Fox ага суть я понял. Но в своем примере я указал реальный код "%C0%E4%EC%E8%ED%E8%F1%F2%F0%E0%F2%EE%F0", который я должен получиль от слова "Администратор". Для этого какой метод нужно использовать?

    Ваша строка "%C0%E4%EC%E8%ED%E8%F1%F2%F0%E0%F2%EE%F0", декодируется в слово

    Àäìèíèñòðàòîð
    

    И это слово корректно кодируется в вашу строку:

    24da7a47-b722-4be0-8c65-05836f0dab93-изображение.png

    Как я и предполагал, проблема в кодировке
    https://snipp.ru/handbk/url-code

    Я не нашёл готового метода или функции для перевода, по этому проще сделать регуляркой замену.


    Почему то не смог пройти мимо и написал функцию замены кода символа utf-8 на ansii с последующем кодированием:

    function esc(input) {
        var str = ""
        for (var i = 0; i < input.length; i++) {
            str += String.fromCharCode(input[i].charCodeAt() - 848)
        }
        return escape(str)
    }
    

    Функция преобразовывает только кирилицу, для пробелов и прочих знаков нужно добавлять условия charCodeAt, заниматься этим мне уже некогда:

    esc("Администратор") //"%C0%E4%EC%E8%ED%E8%F1%F2%F0%E0%F2%EE%F0"
    


  • @Fox исходная кодировка : WINDOWS-1251
    https://2cyr.com/decode/?lang=ru
    раскодирует корректно
    Screen Shot 2020-07-26 at 05.51.24.png



  • @Bigma said in Как изменить кодировку переменной:

    @Fox исходная кодировка : WINDOWS-1251
    https://2cyr.com/decode/?lang=ru
    раскодирует корректно

    Хорошо, только у топикастера был вопрос: Как слово "Администратор" превратить в "%C0%E4%EC%E8%ED%E8%F1%F2%F0%E0%F2%EE%F0".

    И я упомянул, что проблема была в кодировке
    7ab14da9-0568-480b-89e7-9d134665006a-изображение.png

    823ad4ad-73b2-421e-a970-150cdd6dfd39-изображение.png


Log in to reply