我需要将一个带有Ajax函数的字符串从Jquery发送到我的javascript文件。问题是我需要收到一串奇怪的问号/菱形块。
(function( $ )
{
$.fn.CallPhpClass = function(className, functionName, parameters, destination)
{
return this.each(function()
{
if (destination === undefined) {
destination = $(this);
};
$.ajax({
type : 'POST',
url : 'php/executer.php',
data : { className : className, functionName : functionName , parameters : parameters},
dataType:'text',
cache: false,
success : function(data) {
if (className == "User" && functionName == "logout")
{
getMenu();
return;
}
if (className == "User" && functionName == "login")
{
getMenu();
return;
}
if (className == "User" && functionName == "lastView")
{
$('#main-content').CallPhpClass(data, 'view');
return;
}
if (data.search('alert alert-error') != -1 || data.search('alert alert-success') != -1)
{
$('#main-content').CallPhpClass('User', 'lastView');
destination = $('#error-box');
}
if(destination != false)
{
destination.html(data);
}
},
error : function(data) {
console.info(data);
}
});
});
}
})
设置类的代码是:
if (className == "User" && functionName == "lastView")
{
$('#main-content').CallPhpClass(data, 'view');
return;
}
用萤火虫我收到了:
firebug view http://s7.postimage.org/xq4euz7xn/Naamloos.png
所有字符集都是UTF-8,我不知道我做错了什么!
有人可以帮助我吗?
亲切的问候,
答案 0 :(得分:2)
检查元标记的字符集
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
设置 executer.php 文件的响应标题
header('Content-Type: text/html; charset=UTF-8');
在发送Ajax请求时使用contentType
并传递charset
$.ajax({
type : 'POST',
url : 'php/executer.php',
data : { className : className, functionName : functionName , parameters : parameters},
dataType:'text',
cache: false,
contentType: "application/json; charset=utf-8",
success : function(data) {
如果仍然不起作用,请在charset
标记中尝试<script>
,同时包含js文件
<script type="text/javascript" src="myscripts.js" charset="UTF-8"></script>
答案 1 :(得分:0)
在发送数据之前使用utf8_encode: http://us2.php.net/utf8_encode
答案 2 :(得分:0)
setlocale(LC_TIME, "es_ES.UTF8");
这适用于西班牙语