我正在使用jQuery Autocomplete,并且在我的本地计算机上它适用于特殊的西班牙语字符,但在服务器上,它无法正确显示。
本地机器:
请注意“FernandoCañas”的正确显示。在当地没问题。那么我将我的PHP文件部署到我的linux服务器(运行MySQL),运行相同的东西,然后我得到“FernandoCa as”。
奇怪的是,当我在浏览器窗口中查看原始json时,它会正确显示:“FernandoCañas”。但是在Chrome开发者工具中(从服务器运行到我的本地Chrome),再次出错:
总之,在我的本地PC上,Windows 10,运行PHP的PHP和MySQL,一切都很完美。但是在我的linux服务器上(在Apache和MySQL上运行PHP),这是细分:
这是服务器发出的json(当我在本地运行时相同):
{"id":"4225","value":"Fernando Cañas - (555) 555-5555"}
这是我的jquery:
$("#SearchStudents").autocomplete({
formatResult: function(row) {
return $('<div/>').html(row).html();
},
source: function(request, response) {
$.ajax({
url: "SearchStudents.php",
dataType: "json",
data: {
term: request.term,
IncludeInactive: document.getElementById("chkSearchInactive").checked
},
success: function(data) {
console.log(data);
response(data);
}
});
},
minLength: 2,
open: function() {
$('#SearchStudents').autocomplete("widget").width(350);
},
select: function(event, ui) {
location.href = "Students.php?StudentID=" + ui.item.id;
}
});
请注意,以下区块没有区别,无论是否存在:
formatResult: function(row) {
return $('<div/>').html(row).html();
}
解决方案是什么?
答案 0 :(得分:1)
似乎服务器存在utf8问题,请确保:
const AnimatedFontAwesome = Animated.createAnimatedComponent(FontAwesome);
...
<AnimatedFontAwesome
name={route.title === 'New' ? 'clock-o' : 'fire'}
size={14}
style={{ color }}
/>
编码(您可以在操作&gt; phpMyAdmin中的整理中更改)utf8_spanish_ci
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
。header("Content-Type: text/html;charset=utf-8");
$db->query("SET NAMES 'utf8'");
您可以在http://xaviesteve.com/354/acentos-y-enes-aparecen-mal-a%C2%B1-en-php-con-mysql-utf-8-iso-8859-1/
了解更多相关信息