Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/09/2011, 14h27   #1
Invité de passage
 
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 7
Points : 1
Points : 1
Par défaut Perte d'encodage UTF-8 dans une boucle (php-mysql)

Bonjour,

j'ai une base avec interclassement utf8_general_ci (base, tables et champs)
le même champ peut s'afficher bien.. ou pas : dans le même tableau
voici des extraits de codes pour illustration :
Code :
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
 
...
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
...
<?php>
...	
mysql_select_db("jdsauxxisiecle");
//mysql_query("SET NAMES UTF8"); 	 //si je retire le commentaire l'affichage est en : ISO ?
 
...
	$result = mysql_query ($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
 
	while($donnees = mysql_fetch_row($result))
	{	
		//allons chercher si il s'agit d'une extension (et on affiche alors de quel jeu)
		if ($donnees[7]!=0) { 
			//mysql_query("SET NAMES UTF8"); //que je l'ajoute ou l'enleve ne change rien ici
			$affich = mysql_query('SELECT nom_fr FROM jeux WHERE idjeux = '.$donnees[7]);
			while($row = mysql_fetch_row($affich)) {
				$extension = $row[0]."&nbsp;- ".$donnees[0]; //affichage incorrect de $row[0] : en ISO ?
			}
		}		
		else {
			$extension = $donnees[0]; //affichage correct : UTF8 ; ($donnees[0] est le même champ que $row[0])
		}
	...
exemple d'affichage :
Crôa! - Splotch !
Crôa!

d'ou vient le problème ?
merci par avance !
renaudjean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 14h31   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
après ta connexion t'as bien fait un mysql_set_charset ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 14h46   #3
Invité de passage
 
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 7
Points : 1
Points : 1
non,
mais comment expliquer dès lors que l'affichage est bon pour la première requête ?
renaudjean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 14h55   #4
Invité de passage
 
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 7
Points : 1
Points : 1
je viens de tester :

Code :
1
2
	$connection = mysql_connect($host,$login,$pwd);
	mysql_set_charset('utf8',$connection);
et du coup tous les champs avec accents s'affichent mal (ISO ?)...
renaudjean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 16h10   #5
Membre éclairé
 
Avatar de Inazo
 
Gérant - société de développement web
Inscription : avril 2007
Messages : 290
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Gérant - société de développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2007
Messages : 290
Points : 360
Points : 360
Bonjour,

Une tite question et les champs de ta table c'est quoi l'encodage ? Quand tu utilise phpmyadmin par exemple pour lire ta table tu as aussi des problème ?

Cordialement,
__________________
Si vous débutez en PHP : Tutoriel pour grands débutants

Mes tutoriels : http://alexandre-joly.developpez.com/
Inazo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 16h21   #6
Invité de passage
 
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 7
Points : 1
Points : 1
comme indiqué dans la 1ère phrase de mon post initial :

j'ai une base avec interclassement utf8_general_ci (base, tables et champs)
donc via phpMyAdmin, le champ cité en exemple s'affiche : Crôa!

via le site : il s'affiche correctement via la 1ère requête (Crôa!) mais pas dans celle imbriquée (Crôa!)...
renaudjean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 16h43   #7
Membre éclairé
 
Avatar de Inazo
 
Gérant - société de développement web
Inscription : avril 2007
Messages : 290
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Gérant - société de développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2007
Messages : 290
Points : 360
Points : 360
Et la requête ici : $result = mysql_query ($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

Proviens aussi de la table jeux ?

Et ce n'est pas parce que l'on définit une BDD en UTF-8 et en utf8-general-ci que phpMyAdmin ou même les outils tel que MySQL Query Browser se tiendrons à ce réglage.

Cordialement,
__________________
Si vous débutez en PHP : Tutoriel pour grands débutants

Mes tutoriels : http://alexandre-joly.developpez.com/
Inazo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 16h51   #8
Invité de passage
 
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 7
Points : 1
Points : 1
Ne voyez aucune agressivité dans ma réponse précédente.

Pour vous répondre : oui la 1ère requête concerne également la table jeux, (avec 11 autres tables) et c'est bien ce qui me laisse perplexe :
pourquoi le résultat de la première requête s'affiche correctement
et pas celui de la deuxième ? (il s'agit du même champ affiché)
renaudjean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 16h56   #9
Membre éclairé
 
Avatar de Inazo
 
Gérant - société de développement web
Inscription : avril 2007
Messages : 290
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Gérant - société de développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2007
Messages : 290
Points : 360
Points : 360
En aucun cas j'ai pris votre message de manière agressive

Je veux juste tout comme vous essayer de comprendre pourquoi d'un coup PHP affiche la donné de manière incohérente...

On peut avoir la totalité du code de la page si possible ?

Cordialement,
__________________
Si vous débutez en PHP : Tutoriel pour grands débutants

Mes tutoriels : http://alexandre-joly.developpez.com/
Inazo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 17h00   #10
Invité de passage
 
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 7
Points : 1
Points : 1
bien sûr :
Code :
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
<html lang="fr">
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
	<?php require('ajaxstarrater/_drawrating.php'); //fonction d'affichage du score sous forme d'étoiles 	?>
 
		<!link rel="shortcut icon" type="image/ico" href="http://www.sprymedia.co.uk/media/images/favicon.ico" />
		<!link rel="shortcut icon" type="image/ico" href="Games2.png" />
		<link type="text/css" href="css/dark-hive/jquery-ui-1.8.6.custom.css" rel="stylesheet" />
 
		<title>Jeux de Société ABSA</title> 
		<style type="text/css" title="currentStyle">
			@import "DataTables/media/css/demo_page.css";
			@import "DataTables/media/css/demo_table.css";
		</style>
 
		<script type="text/javascript" language="javascript" src="DataTables/media/js/jquery.js"></script>
		<script type="text/javascript" language="javascript" src="DataTables/media/js/jquery.dataTables.js"></script>
		<script type="text/javascript" charset="UTF-8">	
			$(document).ready(function() {				 
				/*
				 * Insert a 'details' column to the table
				 */
				var nCloneTh = document.createElement( 'th' );
				var nCloneTd = document.createElement( 'td' );
				nCloneTd.innerHTML = '<img src="DataTables/examples/examples_support/details_open.png" id="clicoui">';
				nCloneTd.className = "center";
 
				$('#example thead tr').each( function () {
					this.insertBefore( nCloneTh, this.childNodes[0] );
				} );
 
				$('#example tbody tr ').each( function () {
					this.insertBefore(  nCloneTd.cloneNode( true ), this.childNodes[0] );
				} );
 
				 /* Initialse DataTables, with no sorting on the 'details' column */				 
				var oTable = $('#example').dataTable( {
					"bJQueryUI": true,
					"aoColumnDefs": [
						{ "bSortable": false, "aTargets": [ 0 ] }
					],
					"aaSorting": [[1, 'asc']],
					"aoColumns": [ 
					    /* +/-  */   null,
						/*1 jeux */   null,
						/*2 type */   null,
						/*3 theme*/   null,	
						/*4 mns  */   null,
						/*5 min  */   null,
						/*6 max  */   null,						
						/*7 date */   { "bVisible":    false },
						/*8 pays */   { "bSearchable": false,
										 "bVisible":    false },
						/*9 note */   null,
						/*10 prix */   null,
						/*11 diff */   { "bSearchable": false,
										 "bVisible":    false },
						/*12 chan */   { "bSearchable": false,
										 "bVisible":    false },
						/*13 stra */   { "bSearchable": false,
										 "bVisible":    false },
						/*14 dipl */   { "bSearchable": false,
										 "bVisible":    false },
						/*15 stat */   { "bVisible":    false },
						/*16 boite*/   { "bVisible":    false },
						/*17 site */   { "bVisible":    false },
						/*18 lieu */   { "bVisible":    false },
						/*19 epoq */   { "bVisible":    false },
						/*20 mat. */   { "bVisible":    false },
						/*21 role */   { "bVisible":    false },
						/*22 versu*/   { "bVisible":    false },
						/*23 TrTr */   { "bVisible":    false },
						/*24 Video*/   { "bVisible":    false },
						/*25 Meca */   { "bVisible":    false },
						/*25 Desc */   { "bVisible":    false }
					]
				});
 
				/* Add event listener for opening and closing details
				 * Note that the indicator for showing which row is open is not controlled by DataTables,
				 * rather it is done here
				 var path=document[b].src;
 
				 function findimg()
				{
				 var image;
				 image=document.getElementById('home');
				 if (image) 
				  {
				   image.style.border='3px dashed #ccc';
				  }
				}		 
				 */
				$('#example tbody td #clicoui').live('click', function () {
					var nTr = this.parentNode.parentNode;
					if ( this.src.match('details_close') )
					{
						/* This row is already open - close it */
						this.src = "DataTables/examples/examples_support/details_open.png";
						oTable.fnClose( nTr );
					}
					else
					{
						/* Open this row */
						this.src = "DataTables/examples/examples_support/details_close.png";
						oTable.fnOpen( nTr, fnFormatDetails(oTable, nTr), 'details' );
					}
				} );			
			} );
 
			/* Formating function for row details */
			function fnFormatDetails ( oTable, nTr )
			{
				var aData = oTable.fnGetData( nTr );
				var sOut = '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;" width="100%">';
				sOut += '<tr><td colspan="1" rowspan="4">'+aData[16]+'</td><td>'+aData[8]+'	    </td><td valign="center"> paru en '+aData[7]+'<BR>			 		</td><td>Possédé par  : '+aData[15]+'				  	        </td><td align="right"><B>lieu :</B> 		 </td><td align="left">'+aData[18]+'</td><td align="right"><B>difficulté :</B> '+aData[11]+'</td></tr>';
				sOut += '<tr>											   <td>					</td><td><a href='+aData[17]+' target=_blank>site Editeur</a>		</td><td><a href='+aData[23]+' target=_blank>site Tric Trac</a></td><td align="right"><B>époque :</B> 	     </td><td align="left">'+aData[19]+'</td><td align="right"><B>chance    :</B> '+aData[12]+'	</td></tr>';
				sOut += '<tr>											   <td colspan="2" rowspan="1"><B>matériel (plutôt) :</B> '+aData[20]+'		  	 		</td><td style="vertical-align: middle;">vidéo(s) sur le jeu :	'+aData[24]+'       		    </td><td align="right"><B>rôle (plutôt) :</B></td><td align="left">'+aData[21]+'</td><td align="right"><B>stratégie  :</B> '+aData[13]+'</td></tr>';
				sOut += '<tr>											   <td colspan="3" rowspan="1"><B>mécanisme(s) : </B>'+aData[25]+'</td><td align="right"><B>versus :</B> 	     </td><td align="left">'+aData[22]+'</td><td align="right"><B>diplomatie :</B> '+aData[14]+'</td></tr>';
				sOut += '</table>';
 
				return sOut;
			}			
		</script>
 
		<!javascript et feuille de style pour l'affichage du score sous forme d'étoiles> 
	<script type="text/javascript" language="javascript" src="ajaxstarrater/js/behavior.js"></script>
	<script type="text/javascript" language="javascript" src="ajaxstarrater/js/rating.js"></script>
	<link rel="stylesheet" type="text/css" href="ajaxstarrater/css/rating.css" />
	<?php include('param.php'); ?>
	</head>
 
	<body id="dt_example">
		<div id="container">
		<div id="demo">
		<table style="text-align: left; width: 100%;" cellpadding="2" cellspacing="2">
			<tbody>
				<tr>
					<td><img alt='jeux de société 21e siecle' src="images/XXIweb.jpg"  height='300'></a></td>
					<td style="text-align: center; vertical-align: top;"><B>LUDOTHEQUE de la section 'Jeux de Société au 21ème siècle' de <a href="http://www.buttesainteanne.org/" target=_blank>l'ABSA.</a></B>
					<BR><BR><a href="mailto:jdsauxxisiecle@free.fr">Pour nous laisser un message, cliquez ici.</a>
					<BR><BR><BR><BR><B>- Agenda -</B><BR> Tous les lundi soirs de 20h30/21h à minuit<BR><a href="http://maps.google.fr/maps?f=q&source=s_q&hl=fr&geocode=&q=10+Place+des+Garennes,+Nantes&sll=46.75984,1.738281&sspn=5.931584,19.379883&ie=UTF8&hq=&hnear=10+Place+des+Garennes,+44100+Nantes,+Loire-Atlantique,+Pays+de+la+Loire&ll=47.197645,-1.577997&spn=0.020383,0.038581&t=h&z=15&iwloc=r1&layer=c&cbll=47.2021,-1.578379&panoid=0NYKdtaPPOXvP0w9bdCfOw&cbp=12,76.36,,0,1.97" target=_blank>au DIX, 10 place des Garennes à Nantes</a><BR>Traverser la cour par l'escalier de droite, Salle 'CLub', au 1er étage.
					<BR><BR><BR><BR><BR><BR>NB : les entêtes de colonnes et <img alt='plus' src="DataTables/examples/examples_support/details_open.png"></a> sont intéractifs.
					</td>
				</tr>
			</tbody>
		</table>
		<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
	    <thead id="clic">
        <tr>
            <th>Jeux</th>
            <th>Pour</th>
            <th>Type</th>
			<th>Mns</th>
			<th>Min</th>
			<th>Max</th>			
            <th>Date</th>
            <th>Pays</th>
			<th>Note</th>
			<th>Prix</th>
			<th>Diff</th>
			<th>Chan</th>
			<th>Stra</th>
			<th>Dipl</th>
			<th>Statut</th>
			<th>Boite</th>
			<th>Site</th>
			<th>Lieu</th>
			<th>Epoq</th>
			<th>Mat.</th>			
            <th>Role</th>
            <th>Vers</th>
			<th>TrTr</th>
			<th>Video</th>
			<th>Meca</th>
			<th>Des</th>
        </tr>
    </thead>
	<tbody>
 
<?php
 
	$sql ='
SELECT j.nom_fr nomjeu, YEAR(j.date_sortie) date, i.lien imagedrapeau, im.lien boite, i.descriptif nompays, j.idjeux idj, a.statut statut, j.extension ext, j.difficulte diff, j.chance chance, j.strategie strat, j.diplomatie diplom, t.nom theme, f.nom famille, j.duree mns, j.nb_mini_joueur min, j.nb_maxi_joueur max, j.siteorigine sitediteur, l.nom lieu, e.nom epoque, m.nom materiel, r.nom role, v.nom versus, c.lien tt, j.description description FROM jeux j 
	INNER JOIN 	origine o
		ON j.FKidorigine = o.idorigine
	INNER JOIN image i
		ON o.FKidimage = i.idimage
	INNER JOIN image im
		ON j.FKidimage = im.idimage		
	INNER JOIN 	absa a
		ON j.FKidabsa = a.idabsa
	INNER JOIN 	theme t
		ON j.FKidtheme = t.idtheme
	INNER JOIN 	famille f
		ON j.FKidfamille = f.idfamille
	INNER JOIN 	lieu l
		ON l.idlieu = j.FKidlieu
	INNER JOIN 	epoque e
		ON e.idepoque = j.FKidepoque
	INNER JOIN 	materiel m
		ON m.idobjet = j.FKidobjet
	INNER JOIN 	role r
		ON r.iddominante = j.FKidrole
	INNER JOIN 	versus v
		ON v.idversus = j.FKidversus
	INNER JOIN 	commentaire c
		ON c.FKidjeux = j.idjeux
	 ORDER BY nomjeu DESC'; 
	 $result = mysql_query ($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
 
	while($donnees = mysql_fetch_row($result))
	{	
		//allons chercher si il s'agit d'une extension (et on affiche alors de quel jeu)
		if ($donnees[7]!=0) { 
			//mysql_query("SET NAMES UTF8"); //que je l'ajoute ou l'enleve ne change rien ici
			$affich = mysql_query('SELECT nom_fr FROM jeux WHERE idjeux = '.$donnees[7]);
			while($row = mysql_fetch_row($affich)) {
				$extension = $row[0]."&nbsp;- ".$donnees[0]; //affichage incorrect de $row[0] : en ISO ?
			}
		}		
		else {
			$extension = $donnees[0]; //affichage correct : UTF8
		}
 
		//cherchons ensuite si le jeu a eu quelque(s) recompense(s)
		$prix="";
		$sqlprix = "
			SELECT i.lien lien,r.nom prix,r.categorie categorie,r.annee annee FROM recompense r 
			INNER JOIN image i
			ON r.FKidimage = i.idimage
			WHERE r.FKidjeux = ".$donnees[5];							
		$req = mysql_query ($sqlprix);
		$nbprix=0;
		while($row = mysql_fetch_row($req)) {
			$nbprix=$nbprix+1 ;
			$title = addslashes ($row[1])." ".addslashes ($row[2]). " ".$row[3];
			$prix .="<img alt='$nbprix' title='$title' src=".$row[0]."  height='29' value='$nbprix'></a>";		
		}
 
		//cherchons ensuite si le jeu a quelque(s) video(s)
		$video="";
		$sqlvideo = "
			SELECT v.lien lienvideo FROM video v 
			INNER JOIN jeux j
			ON v.FKidjeux = j.idjeux
			WHERE v.FKidjeux = ".$donnees[5];		
		$req = mysql_query ($sqlvideo);
		while($row = mysql_fetch_row($req)) {
			$video .="<a href=".$row[0]." target=_blank><img src='images/MoviesAlt.png' style='border: 0px solid ; width: 15px; height: 15px;'> </a>";
		}
 
	//cherchons ensuite le(s) mécanisme(s) du jeu
		$meca="";
		$sqlmeca = "
			SELECT m.nom meca FROM mecanisme m
			INNER JOIN jeux_meca jm
			ON m.idmecanisme = jm.Fkidmecanisme
			WHERE jm.FKidjeux = ".$donnees[5];
			mysql_query("SET NAMES 'utf8'");
		$req = mysql_query ($sqlmeca);
		while($row = mysql_fetch_row($req)) {
			$meca .=$row[0].", ";
 
		}
 
	//récupérons l'image du jeu au passage et sa description
	//$jdesc = addslashes ($donnees[24]);
	$jdesc = $donnees[24];
	$imjeu ="<img alt=' ' src=".$donnees[3]." title='$jdesc' height='100'></a>";		
 
	echo 
		"<tr>
            <td>$extension</td>
			<td>$donnees[13]</td>
			<td>$donnees[12]</td>
			<td>$donnees[14]</td>
			<td>$donnees[15]</td>
			<td>$donnees[16]</td>			
            <td>$donnees[1]</td>
            <td><img alt=".$donnees[4]." src=".$donnees[2]." width='30' height='25'></a></td>
			<td>".rating_bar($donnees[5],'5','static')."</td>
			<td>$prix</td>
			<td>$donnees[8]</td>
			<td>$donnees[9]</td>
			<td>$donnees[10]</td>
			<td>$donnees[11]</td>
			<td>$donnees[6]</td>
			<td>$imjeu</td>
			<td>$donnees[17]</td>
			<td>$donnees[18]</td>
			<td>$donnees[19]</td>
			<td>$donnees[20]</td>			
            <td>$donnees[21]</td>
            <td>$donnees[22]</td>
			<td>$donnees[23]</td>
			<td>$video</td>
			<td>$meca</td>
			<td>$donnees[24]</td>
        </tr>";
	}
	//$req->closeCursor();
?>		
    </tbody>
</table>
			</div>
			<div class="spacer"></div>			
			<div id="footer" style="text-align:center;"></div>
		</div>
	</body>
</html>
renaudjean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 20h42   #11
Membre régulier
 
Inscription : juillet 2004
Messages : 92
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 92
Points : 75
Points : 75
Par défaut Les mystères de l'UTF-8

Tout d'abord pourquoi la première requête s'affiche bien et celle imbriqué ne l'est pas?
Sa peu venir au niveau de l'insert dans base mysql requête des données "textes iso" vers table utf-8, de l'utilisation ou pas du htlmentities ... de la sur utilisation de utf8_encode problème de sur encodage...

La bonne méthode a prendre mettre tout en utf8 surtout pour les sites multiglottes...

MYSQL en utf8
php.ini charset en utf8
dans le header() pour forcer la page en utf8
soit dans les <meta> forcer le charset en utf8
et aussi pour les utilisateurs de javascript dans la balise <script> mettre aussi l'attribut charset en utf-8

En gros si tu respect ce minima jamais tu rencontrera de problème d'encodage de caractères au niveau web.

Au niveau OS ne pas oublié d'installer les langues ex: japonnais chinois car même en mettant tout en utf-8 si vous n'avez pas les polices dans votre browser ou une alternative dans votre système d'exploitation au cas ou le navigateur ne dispose pas de la police en question.
headmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 14h53   #12
Invité de passage
 
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 7
Points : 1
Points : 1
en fait, les champs de la base sont bien en UTF8,
ainsi que l'interclassement de la base
mais pas celui des tables,
+ certains champs sont toujours en latin 1,
+ je n'avais plus besoin de faire : "mysql_query('SET NAMES utf8');" qui étaient redondants dans le code...
affaire résolue
renaudjean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 16h07   #13
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
d'ailleurs c'est mysql_set_charset
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h21.


 
 
 
 
Partenaires

Hébergement Web