11521 sujets

JavaScript, DOM et API Web HTML5

Bonsoir à tous,
J'ai du bricoler un truc pour passer une variable de <form html dans une autre page html.
Le problème :
Si je passe du texte en français avec des accents, ça ne passe pas.
Mes deux pages sont en utf-8
J'ai du, après tâtonnement, force le chasret de <form à ISO-8859-1 pour avoir mes caractères accentués d'un bout à l'autre de ma chaîne !
Pourquoi ? Normalement, <form prend par défaut le chaste de la page html de départ, non ?
La page de départ :

<html>
<head>
<title>Envoi des paramètres</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body>

<h2>Envoi: </h2>

<p>Remplir les champs ci-dessous et click sur le bouton.</p>
<form name="maform" method="GET" action="T2.html" accept-charset="ISO-8859-1">
    <p> 
        <input  type = "hidden" name="titre" value = "recherche dans l'école" >
    </p>
    <p> 
        <input  type = "text" name="source" >
    </p>
    <p> 
		<input type="button" onclick="location.href='#'" value="Annuler" />
        <input type="submit" name="submit" value="Lire ce document" >

    </p>
</form>

</body>
</html>


Et la page d'arrivée :

<html>
<head>
<title>Réception des paramètres</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

</head>

<html>

	<body>
<h2>Reçu: </h2>
<h2><p>Titre : <span id = "titre"</span></p></h2>
<p> <img id = "source" Width  = "180" Height = "270" alt="1"/>
	
<!-- Ici le script JS -->	
	<script type="text/javascript">
	function addsource()
	{
		var parameters = location.search.substring(1).split("&");

		var temp = parameters[0].split("=");
		l = unescape(temp[1]);
		var ti = l.replace(/\+/g,' ');
		
		var temp = parameters[1].split("=");
		c = unescape(temp[1]);
		c = c.replace(/\+/g,' ');
		var srcimg = "images/" + c + ".jpg"
		
		document.getElementById("titre").innerHTML = ti;
		document.getElementById("source").src = srcimg;
	};
	addsource();
	</script>	

	</body>

</html>

Vous pouvez donc tester à votre tour !
Si vous supprimez le charset dans le <form, vous n'avez pas l'accent de 'école', et pareil su vous forcez le charset à 'utf-8'
Comprenne qui pourra, mais pas moi !
Ce n'est pas très important puisque j'ai trouvé la feint, mais quand même ...
Amitiés à tous
Horace
Modifié par gcyrillus (14 Mar 2020 - 22:04)
Hello,
Curieux je n'ai jamais eu ce souci.
Juste au cas où, ton fichier est bien encodé en utf8 ?
En bash j'avais eu le problème et j'avais converti en ansi.
Salut Stryk,
Quel fichier ?
Toutes mes pages html portent dans les meta :

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lng="fr" />
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Pour le reste, je travaille en XP SP3, et sauf erreur de ma part, tous mon système est sous utf-8, y compris Notepad++.
Alors ?
Merci de t'être penché sur ce problème !
Cordialement
Horace
Modérateur
Chez moi, en ressortant mon vieux pc (du musée), xp sp3 + notepad++ en utf-8 et xamp en php 5 , aucun soucis avec les accents, la config du navigateur peut-être ?

(j'avais besoin de recuperer quelque fichier depuis un moment, c’était l'occasion)
Modifié par gcyrillus (14 Mar 2020 - 22:18)
Salut à toute la communauté,
Décidément, il ne fait pas bon travailler en français ? Ah, ces diacritiques, quel plaie !
Nouveau problème :
J'utilise Sqlite3.
Je prépare un fichier pour nourrir une table, bêtement sous bloc-note de XP.
Pas de problème avec les accents.
Je le renomme en .csv
Je teste dans Excel et j'ai bien mes accents.
Je remplis ma table avec mon fichier.
Je teste sous Sqlite, et là, au désespoir, j'ai perdu mes accents !
Un petit coup de Note++ dans le fichier .db de la base, et là, oh miracle, j'ai les accents.
Comment passer mes enregistrements dans HTML avec les accents ?
Merci si quelqu'un a une solution.
H.
Meilleure solution