我在jQueryUI自动完成中遇到编码问题。 服务器端应用程序是PHP并使用标头发送此查询的回复:
Content-Type: application/json, charset=UTF-8
以下是自动填充代码:
$('#city').autocomplete({
source: 'ajax_get_cities.html',
dataType: "json",
minLength:3
});
当我输入:kra(预期结果是:Kraków)我收到回复(从Firebug原始回复中复制):
[{"city":"Krak\u00f3w"}]
并且自动填充功能不会显示此结果 数据库表,字段,连接,PHP文件都是UTF-8 哪里有问题?
更新
这是服务器端问题,PHP应用程序基于KohanaPHP 2.3.4框架。
以下是获取和显示结果的代码:
header('Content-Type: application/json, charset=UTF-8');
$mModel = new Partners_Model();
$str = $this->input->get('term', true);
$aCities = $mModel->getCitiesAjax($str);
echo json_encode($aCities);
当我显示$ aCities数组时,我得到正确的字符串。
答案 0 :(得分:2)
本地数据可以是一个简单的字符串数组,也可以包含 数组中每个项目的对象,带有标签或值 财产或两者兼而有之。
将标签属性添加到json响应中:
[{"label":"Krak\u00f3w"}]
DOCS:Autocomplete Widget | jQuery UI API Documentation - 选项“来源”
答案 1 :(得分:0)
将此添加到您的autocomplete
:
contentType: "application/json; charset=utf-8"