jQuery UI 自动完成 - 西班牙语字符在本地正确显示,但在服务器上不正确
Posted
技术标签:
【中文标题】jQuery UI 自动完成 - 西班牙语字符在本地正确显示,但在服务器上不正确【英文标题】:jQuery UI autocomplete - Spanish character displays correctly locally but not on server 【发布时间】:2017-05-15 16:47:17 【问题描述】:我正在使用 jQuery Autocomplete,在我的本地机器上它可以很好地处理特殊的西班牙语字符,但在服务器上,它不能正确显示。
本地机器:
注意“Fernando Cañas”的正确显示。本地没问题。然后我将我的 php 文件部署到我的 linux 服务器(运行 mysql),运行相同的东西,我得到“Fernando Ca�as”。
奇怪的是,当我在浏览器窗口中查看原始 json 时,它正确显示:“Fernando Cañas”。但是在 Chrome 开发者工具中(从服务器运行到我的本地 Chrome),又是错误的:
总之,在我的本地 PC 上一切都很完美,Windows 10、运行 PHP 的 IIS 和 MySQL。但是在我的 linux 服务器上(在 Apache 和 MySQL 上运行 PHP),下面是细分:
jquery 自动完成:错误 Chrome 开发者工具查看 json:错误 Chrome浏览器,查看jason:对这是服务器发出的 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();
解决办法是什么?
【问题讨论】:
【参考方案1】:您的服务器似乎存在 utf8 问题,请确保:
-
您的 MySQL 表在
utf8_spanish_ci
中编码(您可以在 phpMyAdmin 中的 Operations > Collation 下更改它)
内容类型 HTML 将此标记放在您的 HTML 文件中:<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
在返回 XML、JSON 或任何 Ajax 调用的 PHP 文件上,在打印任何内容之前执行此操作:header("Content-Type: text/html;charset=utf-8");
。
设置名称,创建PHP/MySQL连接时,连接后发送此查询:$db->query("SET NAMES 'utf8'");
将所有内容保存为 UTF-8 编码。
从 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/
【讨论】:
以上是关于jQuery UI 自动完成 - 西班牙语字符在本地正确显示,但在服务器上不正确的主要内容,如果未能解决你的问题,请参考以下文章