Maison > Article > interface Web > jquery obtient des caractères chinois tronqués dans l'URL
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=张三Vous pouvez utiliser l'expression régulière suivante pour faire correspondre la valeur du paramètre id :
var url = window.location.href; var idReg = /id=(d+)/; var id = idReg.exec(url)[1]; console.log(id); // 输出 123L'expression régulière id=(d+) est utilisée ici pour correspondre à la valeur du Le paramètre id, où d représente un nombre, + représente plusieurs nombres, () est utilisé pour regrouper et capturer les résultats correspondants. 2. Gérer le problème des caractères chinois tronqués Lors de l'obtention des paramètres chinois dans l'URL, nous rencontrons souvent le problème des caractères chinois tronqués. En effet, les caractères chinois de l'URL doivent être codés pour être transmis correctement. Par conséquent, nous devons décoder les caractères chinois lors de l’obtention des valeurs des paramètres d’URL, sinon des caractères tronqués apparaîtront. En JavaScript, nous pouvons utiliser les fonctions intégrées encodeURIComponent() et decodeURIComponent() pour encoder et décoder les caractères chinois dans l'URL.
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%89Notez que la fonction encodeURIComponent() n'encodera pas les espaces, mais si vous devez encoder les espaces en %20, vous pouvez utiliser la fonction replace() pour remplacer les caractères d'espace : # 🎜🎜#
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=张三# 🎜🎜#Note De plus, si les caractères chinois de l'URL ne sont pas correctement encodés, le décodage entraînera des caractères tronqués. Si vous rencontrez cette situation, vous pouvez utiliser la fonction unescape() pour décoder l'URL :
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!