Bonjour,

J'ai un petit problème de gestion des caractères spéciaux.

Je récupère des données via un script php et requête JSON :

Script php (allégé) :
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
 
<?php
 ...
 // Requête
 $sql = "SELECT id, title, directors, year, length, synopsis, public, studio, note, viewTi, viewVa, categories, countries, cast FROM movies WHERE id = " . $id;
        
 ...
 $data = array('id' => htmlentities($record['id']),
                    ...
                    'synopsis' => htmlentities($record['synopsis']),
                    ...
                    );
 
 echo json_encode($data);
?>
Le code JQuery (allégé de même) :
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
 
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <title>MyDVD</title>
  ...
  <script type="text/javascript">
 
   function viewMovie(data) {
    ...
    $("#synopsis").html(data.synopsis);
    $("#insynopsis").val(data.synopsis);
    ...
   }
 
   $(document).ready(function() {
    $.getJSON("./php/movie.php", {id: '1'}, function(data) {
     viewMovie(data);
    });
   });
  </script>
 </head>
 <body>
  ...
  <span id="synopsis"></span>
  <textarea id="insynopsis" rows="4" cols="100"></textarea>
  ...
 </body>
</html>
Le petit souci que je rencontre :
- Pour le <span>, affichage normal du texte
- Pour le <textarea>, les caractères spéciaux ne sont pas "traduits"

Par exemple :
- <span> = "Pour sauver la peau de son frère"
- <textarea> = "Pour sauver la peau de son fr&egrave;re"

Je ne comprends pas pourquoi, certainement l'utilisation du htmlentities côté php et de la fonction val() (seule fonction trouvée pour ajouter du texte sur un textarea) côté JQuery.

Quelqu'un aurait-il une solution/explication ?

Merci d'avance.