Dans le développement Web, nous devons parfois transférer certaines données entre différentes pages Web. À ce stade, nous pouvons utiliser HTML pour transmettre des valeurs. Le transfert de valeurs HTML est une méthode courante, mais certains problèmes peuvent également survenir lors de l'utilisation, comme des caractères tronqués.
Les moyens courants de transmettre des valeurs HTML incluent la transmission de paramètres d'URL, la soumission de formulaire, le cookie et la session, parmi lesquels la transmission de paramètres d'URL et la soumission de formulaire sont les méthodes les plus couramment utilisées. Le passage des paramètres d'URL consiste à transférer des données entre différentes pages via une URL. Par exemple, nous pouvons utiliser le code suivant pour passer un paramètre dans une page :
<a href="target.html?name=张三&age=20">传递参数</a>
Dans la page cible, nous pouvons obtenir la valeur du paramètre via JavaScript :
<script> var name = getQueryString("name"); var age = getQueryString("age"); function getQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null)return unescape(r[2]); return null; } </script>
Dans le code ci-dessus, nous utilisons la méthode d'expression régulière de JavaScript pour obtenir la valeur du paramètre, utilisez la méthode unescape() pour décoder les caractères tronqués.
Cependant, dans le développement réel, nous pouvons rencontrer des problèmes de code tronqué non résolus. À l’heure actuelle, nous devons réfléchir à des solutions.
Tout d'abord, nous pouvons essayer de coder la valeur du paramètre pour éviter les caractères tronqués. Il existe deux méthodes de codage courantes, à savoir le codage URL et le codage Base64.
L'encodage URL convertit tous les caractères spéciaux en encodage au format %xx, où "%xx" représente une chaîne de représentation hexadécimale de la valeur du code ASCII du caractère. Par exemple, nous pouvons utiliser la méthode encodeURIComponent() de JavaScript pour encoder les paramètres d'URL :
<a href="target.html?name=<%=encodeURIComponent('张三')%>&age=<%=encodeURIComponent('20')%>">传递参数</a>
Dans la page cible, nous pouvons utiliser la méthode decodeURIComponent() pour décoder :
<script> var name = decodeURIComponent(getQueryString("name")); var age = decodeURIComponent(getQueryString("age")); function getQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null)return unescape(r[2]); return null; } </script>
L'encodage Base64 consiste à convertir les données en Base64 pour éviter personnages tronqués. Par exemple, nous pouvons utiliser la méthode btoa() de JavaScript pour encoder en Base64 les paramètres :
<a href="target.html?name=<%=btoa('张三')%>&age=<%=btoa('20')%>">传递参数</a>
Dans la page cible, nous pouvons utiliser la méthode atob() pour décoder :
<script> var name = atob(getQueryString("name")); var age = atob(getQueryString("age")); function getQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null)return unescape(r[2]); return null; } </script>
En plus de l'encodage, nous pouvons également utiliser la méta balise pour spécifier l'encodage de la page Méthodes, par exemple :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Voici quelques méthodes pour résoudre le problème de la transmission de valeurs HTML tronquées. Vous devez choisir la méthode appropriée en fonction de la situation réelle. Dans le même temps, nous devons également veiller à protéger la vie privée des utilisateurs et éviter de transmettre des informations sensibles via des URL.
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!