我在使用jQuery for AJAX和Oracle数据库的php脚本上遇到charset问题。 当我使用Web表单通过Ajax使用jQuery发送更新查询时,我的口音字符似乎是以UTF8发送的,并且它们在数据库中并不好用。我不明白,因为我的代码的任何部分都没有UTF-8定义。
有人可以帮忙吗?以下是代码的不同部分:
我有一个带有NLS_DATABASE_PARAMETERS的Oracle数据库:NLS_CHARACTERSET = WE8MSWIN1252
网页meta:
这是jQuery:
$.ajaxSetup
({
'beforeSend' : function(xhr)
{
if (xhr.overrideMimeType!=undefined)
{
xhr.overrideMimeType('text/html; charset=ISO-8859-1');
}
}
});
$('input.f_req_field').change(function ()
{
var p=$(this).attr("name");
var v=$(this).attr("value");
$.post("index.php", { mode:"ajax_update", param: p, valeur: v }
,
function(data){
//alert("Data Loaded if no errors here : " + data);
},"html"
);
在php中连接数据库是:
$link=oci_connect($user,$pass,$host,"WE8ISO8859P1");
查询启动是:
$result_tmp = oci_parse($link,$req ) OR print("Error" );
$tmp= oci_execute($result_tmp,OCI_COMMIT_ON_SUCCESS);
由于
答案 0 :(得分:0)
你应该在ajax设置中设置ajax request charset,
$.ajaxSetup({
type: "GET",
cache: false,
timeout: 10000,
scriptCharset: "UTF-8", //replace UTF-8 with yours
contentType: "application/x-www-form-urlencoded; charset=UTF-8" //replace UTF-8 with yours
});