При вводе акцентированного слова в поле автозаполнения отображаются другие символы - PullRequest
0 голосов
/ 21 октября 2010

Использование сценария автозаполнения ajax, который запрашивает базу данных mysql при вводе имен. Когда я набираю имя с акцентом, раскрывающийся список показывает другие символы, чем те, которые я набрал. Например, когда я набираю фамилию Hylén, раскрывающийся список Ajax показывает Hylà © n. Это происходит, если имя отсутствует в базе данных.

$(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]);

});

});

Что мне смотреть, чтобы это исправить?

1 Ответ

2 голосов
/ 21 октября 2010

Я думаю, вы должны посмотреть на свою кодировку. Похоже, "Ã ©" - это 2 байта Unicode "é", напечатанные как ANSI или что-то еще. Убедитесь, что вы используете UTF8 (или UTF16 или любой другой набор символов, который может обрабатывать все ваши символы) последовательно в

  • база данных
  • все файлы кода (PHP, Javascript и т. Д.)
  • заголовки HTTP
  • Заголовки HTML

Надеюсь, это поможет!

...