jQuery AJAX和oracle数据库的重音问题

时间:2011-02-03 09:02:47

标签: php jquery oracle character-encoding

我在使用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); 

由于

1 个答案:

答案 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
});