Encoder les caractères spéciaux lors de la définition des paramètres d'URL
P粉348915572
P粉348915572 2023-08-17 11:25:49
0
2
381

Je dois définir certains paramètres d'URL, qui doivent également contenir un caractère spécial $

Actuellement, j'utilise .set() pour créer et définir les valeurs de ces paramètres :

const myUrl = new URL("http://www.example.com/??"); let params = new URLSearchParams(); params.set('$param1', '60'); params.set('$param2', '100');

Je sais que je dois utiliser encodeURI() pour m'assurer d'obtenir $ dans l'URL et non %24 - Mais à quel stade dois-je faire cela ?

Si je fais quelque chose comme ceci lors de la conversion des paramètres en chaînes et de leur ajout à l'URL, ils sont déjà convertis.

myUrl.search = encodeURI(params.toString()); // Sortie : http://www.example.com/?%24param1=60&%24param2=100 // Attente : http://www.example.com/?$param1=60&$param2=100


P粉348915572
P粉348915572

répondre à tous (2)
P粉147747637

Puisque vous en avez besoin et que votre serveur le prend en charge, corrigez-le simplement à la fin

const myUrl = new URL("http://www.example.com/?"); let params = myUrl.searchParams; params.set('$param1', '60'); params.set('$param2', '100'); console.log(myUrl.toString().replace(/%24/g,"$"))
    P粉986028039

    Dans votre cas, la méthode$字符被编码为%24,因为它是URL中的保留字符。URLSearchParams对象的setencode automatiquement ces caractères pour garantir que la chaîne résultante est une URL valide.

    Cependant, si vous souhaitez inclure les caractères$tels quels, vous pouvez contourner l'encodage automatique en construisant manuellement la chaîne de requête :

    const myUrl = new URL("http://www.example.com/?"); let params = ['$param1=60', '$param2=100'].join('&'); myUrl.search = params; console.log(myUrl.toString()); // 输出:http://www.example.com/?$param1=60&$param2=100

    Cela vous donnera le résultat souhaité, mais veuillez noter qu'il ne s'agit peut-être pas d'une URL valide selon les spécifications de l'URL, car$est un caractère réservé. Cela peut entraîner des problèmes avec certains serveurs ou API.

    Si vous contrôlez le serveur ou l'API avec lequel vous interagissez et que vous êtes sûr qu'il peut gérer les URL avec$字符的URL,则此方法应该有效。否则,通常最安全的做法是使用URLSearchParamscaractères dans la chaîne de requête, cette méthode devrait fonctionner. Sinon, il est généralement plus sûr d'utiliser l'encodage automatique fourni parURLSearchParams.

    Veuillez confirmer si cette solution fonctionne pour vous ou si vous avez besoin d'aide supplémentaire.

      Derniers téléchargements
      Plus>
      effets Web
      Code source du site Web
      Matériel du site Web
      Modèle frontal
      À propos de nous Clause de non-responsabilité Sitemap
      Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!