IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Encodage UTF-8 d'une response Json


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut [AJAX] Encodage UTF-8 d'une response Json
    Bonjour à tous,

    Je développe une application java/JEE, j'ai un composant Jquery (Datatable) qui affiche le résutat de mon service de recherche sous forme d'une response Json.
    Mon problème c'est que les caractère avec accents s'affichent comme ca "�".

    Voila le header de ma JSP:
    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
     
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" session="false"%>
    <!doctype html>
    <html lang="fr">
    <head>
    <meta charset="utf-8">
    <title>App</title>
    <link href="resources/css/CA-BANK-theme/jquery-ui-1.10.1.custom.css"
    	rel="stylesheet">
    <script type="text/javascript" charset="utf-8" src="resources/js/jquery-1.9.1.js"></script>
    <script type="text/javascript" charset="utf-8" src="resources/js/jquery-ui-1.10.1.custom.js"></script>
    <script type="text/javascript" charset="utf-8" src="resources/js/jquery.dataTables.js"></script>
    <style type="text/css" title="currentStyle">
    @import "resources/css/data-table-css/table_jui.css";
    </style>
    <script type="text/javascript" charset="utf-8">
    	$(function() {
    		var oTable;
    		oTable = $("#myTable").dataTable({
    			bJQueryUI : true,
    			sPaginationType : "full_numbers",
    			iDisplayLength : 8,
    			"bLengthChange" : false,
    			"bSort" : false,
    			"oLanguage" : {
    				"sUrl" : "resources/language/fr.txt"
    			},
    			"bProcessing" : true,
    			"bServerSide" : true,
    			cache : false,
    			"sAjaxSource" : "/app/welcome/recherche",
    			"fnServerData" : function(sSource, aoData, fnCallback) {
    				$.ajax({
    					"dataType" : 'json',
    					"type" : "POST",
    					"url" : sSource,
    					"data" : aoData,
    					"success" : fnCallback
     
    				});
    			}
     
    		});
    La méthde de recherche dans mon controller:
    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
     
        @RequestMapping(value="/recherche", method = {RequestMethod.POST, RequestMethod.GET})
        public @ResponseBody String recherche(@RequestParam String sSearch, 
        		@RequestParam String sEcho,
        		@RequestParam String iDisplayStart) throws IOException, ParseException {
     
        	String str = "{  \"sEcho\": "+Integer.valueOf(sEcho)+" ," +
                  "   \"iTotalRecords\": 0," +
                  "   \"iTotalDisplayRecords\": 0," +
                  "   \"aaData\": [" +
                  "   ]" +
                  "}";
     
        	if((sSearch!=null)&&(sSearch.length()>0)){
            	String searchCriteria = sSearch;//+"*";
        	List<Activity> activityList = searchService.getActivities("C:/Indexation/src/main/resources/index", searchCriteria, 999);
        	Map<String, String> result = jsonService.getJsonResponse(activityList, sEcho);
        		str = result.get(iDisplayStart);
     return str;
    Après plusieurs tests, il me semble que le parser coté client ne parse pas la reponse Json en UTF-8, comment faire pour résoudre ce problème?

    Merci d'avance,

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonsoir,
    je ne peux que te conseiller cet EXCELLENT article Passez à l'UTF-8 sans manquer une étape

  3. #3
    Membre averti
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut [Résolu]
    Me voila de retour, je partage avec vous ce qui m'a sauvé la miche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        @RequestMapping(value="/recherche", produces = "text/html;charset=UTF-8", method = {RequestMethod.POST, RequestMethod.GET})
        public @ResponseBody ResponseEntity<String> recherche(@RequestParam String sSearch, 
        		@RequestParam String sEcho,
        		@RequestParam String iDisplayStart) throws IOException, ParseException {
     
        	HttpHeaders responseHeaders = new HttpHeaders();
        	responseHeaders.setContentType(new MediaType(MediaType.APPLICATION_JSON, Collections.singletonMap("charset", "UTF-8")));
     
    return new ResponseEntity<String>("ta réponse Json", responseHeaders, HttpStatus.OK);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Perte d'encodage UTF-8 dans une boucle (php-mysql)
    Par renaudjean dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 22/09/2011, 16h07
  2. Encodage UTF-8 depuis une BDD Hsqldb
    Par bankette dans le forum Persistance des données
    Réponses: 7
    Dernier message: 09/11/2010, 16h38
  3. Encodage des & et + dans une requete AJAX
    Par camcam8782 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 16/09/2009, 11h02
  4. [MySQL] Encodage UTF-8 d'un tableau associatif dans une classe
    Par SaMot91 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 11/11/2008, 17h43
  5. [AJAX] Encodage avec JSON
    Par Norin dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/07/2008, 22h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo