在我的索引PHP页面中,我定义了这个字符集:
header("Content-Type: text/html; charset=UTF-8");在带有meta标签的超文本标记语言中:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />在这个页面上,我提交了一个使用Ajax (JQuery)的表单:
$('#action_button').click(function() {
var azione = $('#form-post').attr('action');
var datiform = $('#form-post').serialize();
send = $.ajax({
type: "POST",
url: azione,
data: datiform,
dataType: "json",
beforeSend: function(){
...
},
success: function(msg){
...
}
});
return false;
});在接收数据的页面中,我设置了标头
header("Content-Type: text/html; charset=UTF-8");我请求发布数据:
$nome = htmlentities(rtrim(ltrim(strip_tags(addslashes($_POST['nome']))))) ;但是数据没有在数据库中正确注册;字符解释得很糟糕,就像A和类似的一样。我已经测试了不同的方法,但都没有成功,但是如果我不使用Ajax (jQuery)发送表单,它工作得很好!
发布于 2011-07-08 17:51:13
问题可能出在您的数据库中。你可以通过echo $nome;来确认。我建议您尝试使用此函数连接到数据库。还要将您的表字符集转换为utf8_unicode_ci...
function connect($server, $database, $username, $password, $charset = "UTF8"){
$link = mysql_connect($server, $database, $password);
if(!$link){
die("Unable to connect to database server.");
}
mysql_selectdb($database);
if(function_exists("mysql_set_charset")){
mysql_set_charset($charset, $link);
}else{
mysql_query("SET NAMES $charset");
}
}设置表格字符集...
ALTER TABLE `my_table` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci数据库...
ALTER DATABASE `my_database` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_cihttps://stackoverflow.com/questions/6622459
复制相似问题