据我所知,当BOM字符不匹配时会生成字符串。我在jQuery .get()调用的响应开始时得到它们。目前,我正在攻击响应并删除角色,但我想了解为什么会这样。
现有网站包含元标记:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
我尝试添加标题:
header('Content-Type: text/html; charset=utf-8');
标题标记之前的,既可以单独使用,也可以与元标记结合使用。无论是否存在这些标记,Firefox都会报告该页面具有UTF-8编码。我已经尝试用指定编码的.ajax()调用替换.get()调用,但无济于事:
$.ajax(
{
type:'GET',
url: 'common/includes/FilterDataLog.cfm',
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
data: 'column='+selectedValue+'&filterValue='+filterValue+'&filterID='+filterID+'&configFile=log/log.xml',
success: function(response){
//response = response.replace('', '');
thisTextFilter.replaceWith(response);
}
});
FilterDataLog.cfm页面返回:
<div id="" class="fl txt_input_container">
<input type="text" class="txtvalueFilter" id="myFilterID" name="txtvalueFilter" value="#url.filterValue#"/>
</div>
<script>
$(document).ready(function(){
$('#myFilterID').autocomplete({
delay: 500,
source: function(request, response) {
$.ajax({
url: "cfc/autoSuggestLog.cfc?method=lookupSomething&returnformat=json",
dataType: "json",
data: {
search: request.term,
maxRows: 30
},
success: function(data) {
response(data);
}
})
},
change: function(event, ui) {
if (!ui.item) {
$(this).val('');
}
}
});
});
</script>
我在网站上找不到其他地方设置字符编码,所以我很难过。有什么想法吗?
答案 0 :(得分:2)
这里有几件事需要检查。
<cfprocessingdirective pageencoding="utf-8"/>
答案 1 :(得分:1)
要确定问题是否源自IDE,我会将您的代码复制并粘贴到文本编辑器(如NotePad ++)中。然后,您可以选择编码&gt;转换为不带BOM的UTF-8 ,然后保存并重新运行该文件。如果未发生错误,则IDE中的设置将更改。
您没有提及您的服务器,您是否正在运行ColdFusion的独立副本?或者它是通过IIS,Apache Tomcat,Apache HTTPD运行的?其中任何一个都可能是BOM插入的来源。