Bonjour/Bonsoir.

Je rencontre un problème très gênant sur mes pages. En fait les utilisateurs de mon application web sont amenés à créer des demandes d'intervention accompagné d'un commentaire et, sans que je comprenne pourquoi, certaines insertions se font bien et d'autres non (alors que le code ne change pas), je m'explique :

1ère insertion - Boitier Ã* clef élévateur cassé au niveau du compacteur
2ème insertion - Vitre porte SURG 7.1 brisée. 1 côté du double vitrage cassé entièrement (côté couloir). Prévoir remplacement de la vitre ou de la porte entière?

Ensuite je fais apparaître la demande de deux manière, soit une demande par demande (l'utilisateur entre le numéro de la demande), soit dans un tableau les regroupant toutes / le problème reste le même dans les deux cas :

• Si je ne met pas de charset et donc que je ne déclare pas ma page en UTF-8, j'ai cet affichage :

1ère insertion - Boitier à clef élévateur cassé au niveau du compacteur
2ème insertion - Vitre porte SURG 7.1 brisée. 1 côté du double vitrage cassé entièrement (côté couloir). Prévoir remplacement de la vitre ou de la porte entière?

• Si en revanche je met un charset et donc que je déclare ma page en UTF-8, j'ai cet affichage :

1ère insertion - Boitier à clef élévateur cassé au niveau du compacteur
2ème insertion - Vitre porte SURG 7.1 bris�e. 1 c�t� du double vitrage cass� enti�rement (c�t� couloir). Pr�voir remplacement de la vitre ou de la porte enti�re?


J'ai essayé tout ce que j'ai trouvé sur internet et dans les deux cas (utf8_decode/encode, html_entity_decode, SET NAMES UTF8, SET CHARACTER SET UTF8). Même quand je suis dans le premier cas et que je fais un replace de façon à rechercher é et à le remplacer par " é " cela ne fonctionne pas.

Voici mon code (ici pour le faire apparaître sous forme de tableau) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
	$base = mysqli_connect("serveur","user","mdp");
	mysqli_select_db($base,"table");	
 
	session_start();
	include 'entete_boutons.php';
	include 'nav.php';
?>
 
<!DOCTYPE html>
	<head>
		<meta charset="utf-8">
		<link rel="stylesheet" href="miseenpage.css" />
		<link rel="stylesheet" href="tableausuividirta.css"/>
		<title>Suivi DI complet</title>
	</head>
 
	<body>
		<?php	
			//Récupération des informations sur les DI.
			$recupererInformationsDI = "SELECT numDemande,nomDemandeur,type,commentaire,numEquipement,urgence,uc,infrastructure,ville,etat,date,lien_devis FROM demandeintervention ORDER BY infrastructure ASC, uc ASC";
			$requeteRecupererInformationsDI = mysqli_query($base,$recupererInformationsDI);
		?>
			<h4><u>Suivi des demandes d'intervention complet.</u></h4>
		<?php
			//Création du tableau.
			echo '<table>
						<tr>
							<th>Infrastructure</th>
							<th>UC</th>
							<th>Numéro de demande</th>
							<th>Nom du demandeur</th>
							<th>Type de la demande</th>
							<th>Commentaire du site</th>
							<th>Numéro d\'équipement</th>
							<th>Niveau d\'urgence</th>
							<th>Etat de la demande</th>
							<th>Date d\'intervention</th>
							<th>Devis</th>
						</tr>';
 
			while($ligne = mysqli_fetch_array($requeteRecupererInformationsDI)){
				$jour = substr($ligne['date'],8,2);
				$mois = substr($ligne['date'],4,4);
				$annee = substr($ligne['date'],0,4);
				$date = $jour.$mois.$annee;
 
				if($ligne['lien_devis'] == null){
					echo 	'<tr>
							<td>'.$ligne['infrastructure'].'</td>
							<td>'.$ligne['uc'].'</td>
							<td>'.$ligne['numDemande'].'</td>
							<td>'.$ligne['nomDemandeur'].'</td>
							<td>'.$ligne['type'].'</td>
							<td>'.str_replace("\n",'<br />',$ligne['commentaire']).'</td>
							<td>'.$ligne['numEquipement'].'</td>
							<td>'.$ligne['urgence'].'</td>
							<td>'.$ligne['etat'].'</td>
							<td>'.$date.'</td>
							<td>Non</td>
						</tr>';
				}
				else{
					echo 	'<tr>
							<td>'.$ligne['infrastructure'].'</td>
							<td>'.$ligne['uc'].'</td>
							<td>'.$ligne['numDemande'].'</td>
							<td>'.$ligne['nomDemandeur'].'</td>
							<td>'.$ligne['type'].'</td>
							<td>'.str_replace("\n",'<br />',$ligne['commentaire']).'</td>
							<td>'.$ligne['numEquipement'].'</td>
							<td>'.$ligne['urgence'].'</td>
							<td>'.$ligne['etat'].'</td>
							<td>'.$date.'</td>
							<td><a href="devis/'.$ligne['lien_devis'].'" target="_blank">Oui</a></td>
						</tr>';
				}
			}
 
			echo '</table>';
		?>
	</body>
</html>
Dans le cas de la mise sous forme de tableau c'est deux fois plus embêtant étant donné que je fais un export vers Excel et que les lignes où on retrouve un � se transforment automatiquement en " FAUX ".