2010-10-21 4 views
0

Utilisation d'un script ajax autosuggest qui interroge une base de données mysql lorsque j'entre des noms. Comme je tape un nom avec un accent, la liste déroulante montre des caractères différents de ceux que j'ai tapés. Par exemple, comme je tape le nom de famille Hylén, la liste déroulante Ajax montre Hylén. Cela se produit si le nom n'est pas dans la base de données.La saisie d'un mot accentué dans une boîte de saisie semi-automatique affiche d'autres caractères

$(document).ready(function(){ 

$("input[id^='last_']").autocomplete('suggest.php',{ 

matchCase:true, 

formatItem: function(data, i, total) 

{ 

var s=data[0].split(",") 

return s.join(" "); 

} 

}); 


$("input[id^='last_']").result(function(event, data, formatted){ 

var ids=this.id.split('_') 

var id=ids[1]; // from last_xx got xxx 

var s=html_entity_decode(data[0]).split(","); // first,middle,last 

$(this).next().focus(); 

$(this).next().select(); 

//have only last value -- TAB pressed 

if(s.length==1)return; 

$('#first_'+id).val(s[0]); 

$('#middle_'+id).val(s[1]); 

$('#last_'+id).val(s[2]); 

}); 

}); 

Que dois-je faire pour résoudre ce problème?

Répondre

2

Je pense que vous devriez regarder votre encodage. On dirait que "Ã ©" est les 2 octets Unicode de "é" imprimé comme ANSI ou autre. Assurez-vous que vous utilisez UTF8 (ou UTF16 ou quoi que charset pouvez gérer tous vos personnages) de manière cohérente

  • la base de données
  • tous les fichiers de code (PHP, Javascript, etc.)
  • en-têtes HTTP
  • en-têtes HTML

Espérons que ça aide!

+1

en particulier, "Ã ©" est '\ xc3 \ xa9' qui est' é' en UTF-8 – cobbal

+0

Merci ... Je vais devoir m'assurer de convertir en UTF-8. – Ian

Questions connexes