Bonjour,

J'ai :
- un serveur web httpd 2.4.3
- un serveur de bases de données mysql 5.5.27
- un interpréteur de scripts php 5.4.7
- un navigateur web firefox 15.0.1

J'ai ce fichier test.sql qui crée une table et insère deux tuples :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
DROP TABLE IF EXISTS `mytable`;
CREATE TABLE `mytable`
(
	`id` int(11) NOT NULL AUTO_INCREMENT,
	`value` varchar(255) DEFAULT NULL,
	PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `mytable` VALUES (1,'àbc'),(2, 'déf');

J'ai ce fichier test.php qui affiche les valeurs stockées dans ma table :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<?php
mysql_connect("localhost", "root", '...');
mysql_select_db("mydatabase");
$query = "SELECT * FROM mytable";
$result = mysql_query($query);
$array = mysql_fetch_array($result);
echo $array['value'];
?>
Voici mes manipulations pour la base de données :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$ mysql -u root -p
create database mydatabase;
SET NAMES utf8;
source test.sql
SELECT * FROM mytable;
Jusqu'ici le résultat est bon :
SELECT * FROM mytable;
+----+-------+
| id | value |
+----+-------+
|  1 | àbc   |
|  2 | déf   |
+----+-------+
2 rows in set (0.00 sec)
Ensuite, au niveau de PHP, je commence par tester en ligne de commandes :
Encore ici, le résultat est bon :
àbc
Là ou ça coince, c'est quand je passe par mon serveur web :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$ cp test.php ~/public_html/
$ firefox http://localhost/~yugiohjcj/test.php &
J'obtiens un losange noir avec un point d'interrogation blanc à l'intérieur à la place de "à".

J'ai regardé l'encodage de mon navigateur web, il est en UTF-8 (View>Character Encoding>UTF-8).
Par contre, si je passe mon navigateur web en ISO-8859-1, alors le caractère s'affiche correctement.

Est-ce que vous voyez pourquoi mon caractère ne s'affiche pas correctement en UTF-8 ?

Merci.