En développement web, nous avons souvent besoin d'utiliser jQuery pour obtenir des paramètres dans l'URL. Cependant, lorsque l’URL contient des caractères chinois, on peut facilement rencontrer le problème des caractères chinois tronqués. Dans cet article, nous présenterons comment utiliser jQuery pour obtenir les paramètres chinois dans l'URL et comment résoudre le problème des caractères chinois tronqués.
1. Récupérez les paramètres dans l'URL
Il existe généralement deux façons d'obtenir les paramètres dans l'URL :
Ci-dessous, nous présentons respectivement ces deux méthodes.
La méthode window.location.search peut obtenir la chaîne de paramètres dans l'URL, par exemple :
http://example.com/index.html?id=123&name=张三
Vous pouvez utiliser le code suivant pour obtenir la chaîne de paramètre :
var paramsStr = window.location.search; // 返回 ?id=123&name=张三
Ensuite, nous pouvons utiliser la fonction intégrée JavaScript decodeURIComponent() pour analyser la chaîne de paramètres et la convertir sous la forme de la paire clé-valeur :
function getParams(url) { var paramsStr = url.split("?")[1]; // 获取参数字符串 var paramsArr = paramsStr.split("&"); // 将参数字符串转换为数组 var paramsObj = {}; for (var i = 0, len = paramsArr.length; i < len; i++) { var arr = paramsArr[i].split("="); var name = decodeURIComponent(arr[0]); // 解码中文字符 var value = decodeURIComponent(arr[1]); paramsObj[name] = value; // 将键值对添加到paramsObj中 } return paramsObj; } var params = getParams(window.location.href); console.log(params.id); // 输出 123 console.log(params.name); // 输出 张三
Veillez à utiliser decodeURIComponent() pour décoder les caractères chinois, sinon des caractères tronqués apparaîtront.
Les expressions régulières peuvent correspondre aux valeurs de paramètres spécifiées dans l'URL, par exemple : # 🎜 🎜#
http://example.com/index.html?id=123&name=张三
var url = window.location.href; var idReg = /id=(d+)/; var id = idReg.exec(url)[1]; console.log(id); // 输出 123
var str = "http://example.com/index.html?id=123&name=张三"; var encoded = encodeURIComponent(str); console.log(encoded); // 输出 http%3A%2F%2Fexample.com%2Findex.html%3Fid%3D123%26name%3D%E5%BC%A0%E4%B8%89
var str = "http://example.com/index.html?id=123&name=张 三"; var encoded = encodeURIComponent(str.replace(/s/g, "%20")); console.log(encoded); // 输出 http%3A%2F%2Fexample.com%2Findex.html%3Fid%3D123%26name%3D%E5%BC%A0%20%E4%B8%89
decodeURIComponent()
var str = "http%3A%2F%2Fexample.com%2Findex.html%3Fid%3D123%26name%3D%E5%BC%A0%E4%B8%89"; var decoded = decodeURIComponent(str); console.log(decoded); // 输出 http://example.com/index.html?id=123&name=张三
var str = "http://example.com/index.html?id=123&name=张三"; var encoded = escape(str); // 编码 var decoded = unescape(encoded); // 解码 console.log(decoded); // 输出 http://example.com/index.html?id=123&name=张三
A noter ici que la fonction unescape() a été abandonnée et n'est pas recommandée. Il est recommandé d'encoder correctement les caractères chinois lors de la transmission d'URL afin d'éviter les caractères tronqués.
3. Conclusion
L'obtention de paramètres dans l'URL est une opération de base dans le développement Web, et le problème des caractères chinois tronqués est également une difficulté de développement courante. Pour éviter ces problèmes, nous pouvons utiliser les fonctions encodeURIComponent() et decodeURIComponent() pour encoder et décoder l'URL. Dans le même temps, les caractères chinois doivent également être décodés lors de l'obtention des valeurs des paramètres d'URL, sinon des caractères tronqués apparaîtront. Même si ces opérations peuvent être un peu fastidieuses, elles sont indispensables pour les sites chinois.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!