Интервал между словами портит URL? - PullRequest
2 голосов
/ 14 июля 2020
exports.exec = async (client, message, args) => {
    // Fires Error message that the command wasn't ran correctly.
    if (args.length < 1) {
        return message.channel.send({
            embed: {
                color: 0,
                description: `${message.author} Please input something to be generated into the QR code.`
            }
        });
    }
    // Fires Error message that the command wasn't ran correctly.

    var text = args.join(' ');
    var qr_generator = `https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=${text}`;
    message.channel.send(qr_generator);
};

Привет, ребята, выше команда, она работает , хотя при попытке добавить несколько слов, т.е. « hello world он улавливает только hello , после помещения пробела он разбивается. Я не совсем уверен, как разрешить пробелы.

Любая помощь приветствуется.

Пример -

Пример изображения

Ответы [ 5 ]

3 голосов
/ 14 июля 2020

Поскольку пробел небезопасен, используйте символы encodeURIComponent для кодирования URL-адресов

Кодирование URL-адресов преобразует зарезервированные, небезопасные и не-ASCII-символы в URL-адресах в формат, который повсеместно принят и понятен всем веб-браузеры и серверы

 var qr_generator = `https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=${encodeURIComponent(text)}`;
1 голос
/ 14 июля 2020

Вы можете использовать %20, представляющий пробел.

0 голосов
/ 14 июля 2020

encodeURIComponent их!

console.log( encodeURIComponent('hello world!') );
0 голосов
/ 14 июля 2020

Я не знаю язык программирования, который вы используете, но кодирование URL-адреса может быть полезным. Вот пример в Python:

def encode_url(url):
    encoded = ''
    for special_char in url:
        encoded += '%' + hex(ord(special_char)).lstrip('0x')
    return encoded

Итак, encode_url('Hello World!') вернет '%48%65%6c%6c%6f%20%57%6f%72%6c%64%21', которое принимается в URL.

0 голосов
/ 14 июля 2020

Специальные символы в URL-адресах кодируются с использованием формата, называемого процентное кодирование .

Пробел представлен как %20.

например, https://example.com/hello%20world/

Дополнительная литература:

...