[英]Bad charset submitted in jQuery Ajax form
在我的索引 PHP 頁面中,我定義了這個字符集:
header("Content-Type: text/html; charset=UTF-8");
並在帶有meta
標記的 HTML 中:
<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
header("Content-Type: text/html; charset=UTF-8");
我請求發布數據:
$nome = htmlentities(rtrim(ltrim(strip_tags(addslashes($_POST['nome']))))) ;
但數據未在數據庫中正確注冊; 字符 òèìùàé 被錯誤地解釋,例如 ÄÃ 和類似的。 我測試了不同的方法,但沒有成功,但如果我發送沒有 Ajax (jQuery) 的表單,它工作正常!
問題可能出在您的數據庫中。 你可以echo $nome;
為了確定。 我建議您嘗試使用此 function 連接到數據庫。 還將您的表格字符集轉換為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_ci
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.