gpt4 book ai didi

php - jQuery UI 自动完成 - 西类牙字符在本地正确显示但在服务器上不正确

转载 作者:行者123 更新时间:2023-11-28 23:21:32 25 4
gpt4 key购买 nike

我正在使用 jQuery Autocomplete,在我的本地机器上它可以很好地处理特殊的西类牙字符,但是在服务器上,它无法正确显示。

本地机器:

enter image description here

注意“Fernando Cañas”的正确显示。本地没问题。然后我将我的 PHP 文件部署到我的 linux 服务器(运行 MySQL),运行同样的东西,然后我得到“Fernando Ca�as”。

奇怪的是,当我在浏览器窗口中查看原始 json 时,它正确显示:“Fernando Cañas”。但是在 Chrome 开发者工具中(从服务器运行到我本地的 Chrome),它又是错误的:

enter image description here

总而言之,在我的本地 PC(Windows 10、运行 PHP 的 IIS 和 MySQL)上,一切都很完美。但是在我的 Linux 服务器上(在 Apache 和 MySQL 上运行 PHP),这是故障:

  • jquery 自动完成:错误
  • Chrome 开发者工具查看 json:错误
  • Chrome浏览器,查看jason:对

enter image description here

这是服务器发出的 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;
}
});

请注意,无论是否存在,以下 block 都没有区别:

formatResult: function(row) {
return $('<div/>').html(row).html();
}

解决方案是什么?

最佳答案

您的服务器似乎存在 utf8 问题,请确保:

  1. 您的 MySQL 表编码为 utf8_spanish_ci (您可以在 phpMyAdmin 中的操作 > 排序规则下更改它)
  2. 内容类型 HTML 将此标记放在您的 HTML 文件中:<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
  3. 在返回 XML、JSON 或任何 Ajax 调用的 PHP 文件上,在打印任何内容之前执行此操作:header("Content-Type: text/html;charset=utf-8"); .
  4. 设置名称,在创建 PHP/MySQL 连接时,在连接后发送此查询:$db->query("SET NAMES 'utf8'");
  5. 将所有内容保存为 UTF-8 编码。
  6. latin1 转换为 UTF-8: SELECT convert(cast(convert(content using latin1) as binary) using utf8) AS content

您可以在以下位置阅读更多相关信息:http://xaviesteve.com/354/acentos-y-enes-aparecen-mal-a%C2%B1-en-php-con-mysql-utf-8-iso-8859-1/

关于php - jQuery UI 自动完成 - 西类牙字符在本地正确显示但在服务器上不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41412241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com