在自动填充框中键入带重音的单词会显示其他字符

时间:2010-10-21 05:53:21

标签: ajax autocomplete diacritics

使用ajax autosuggest脚本在输入名称时查询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 个答案:

答案 0 :(得分:2)

我认为你应该看看你的编码。看起来像“é”是以ANSI或其他形式打印的“é”的2个Unicode字节。确保您使用UTF8(或UTF16或任何字符集可以处理所有字符)

  • 数据库
  • 所有代码文件(PHP,Javascript等)
  • HTTP标头
  • HTML标题

希望有所帮助!