1

フォームから POST でデータを送信した後、コーディングに問題があります。

ą、ć、ę、ł、ń などの特殊なポーランド語の文字を使用すると、? が表示されます。適切な文字の代わりに。私はすでに3日目で苦労しており、問題を見つけることができません。

Web サイトは UTF8 を使用しており、すべてのファイルは UTF8 です。フォームは AJAX を使用してデータを送信し、出力バッファー (ob) を使用して応答を取得しています。Chrome でヘッダーをチェックしているときは、すべて問題ありません。では、jQuery/Ajax/ob で何かが起こっているように見えますか?

jQuery/Ajax/ob に使用されるすべての関数:

jQuery :

function ajaxForm(oform,ni,wt,nhi) {
    if (wt==''||wt==undefined) {
        if (oform.id=='theLongForm') {
            // time out based on the form id
            wt=120000;
        } else if (document.forms[oform.id].timeout) {
            // use the specific time out setting
            wt=document.forms[oform.id].timeout.value;
        } else {
            // default time out setting
            wt=10000;
        }
    }
    if (ni==''||ni==undefined) ni=false;
    if (nhi==''||nhi==undefined) nhi=false;
    if (ni!=true) showIndicator();
    $('#'+oform.id).ajaxSubmit({
        url: oform.action,
        type: 'POST',
        dataType: 'xml',
        timeout: wt,
        error: function(){
            document.forms[oform.id].ajax.value='x';
            $('#'+oform.id).submit();

        },
        success: function(xml){
            if (processResult(xml)) {
                if (nhi!=true) $("#indicator").hide(200);
            }
        }
    });
    return false
}

PHP:

function outputAjaxHeader() {
    global $ajaxRequest,$doneAjaxHeader;
    if ($ajaxRequest && !$doneAjaxHeader) {
        // output ajax XML header
        header('Content-type: text/xml; charset: utf-8');
        print '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
        print '<items>' . "\n";
        $doneAjaxHeader = true;
    }
}

function outputAjaxItemStart($elem,$option='general',$full=false) {
    global $ajaxRequest;
    if ($ajaxRequest) {
        print "\t" . '<item>' . "\n";
        print "\t\t" . '<name>'.($full?'':'#').$elem.'</name>' . "\n";
        print "\t\t" . '<option>'.$option.'</option>' . "\n";
        print "\t\t" . '<data><![CDATA[';
        ob_start();
    }
}

function outputAjaxItemEnd() {
    global $ajaxRequest;
    if ($ajaxRequest) {
        $buffer = ob_get_contents();
        ob_end_clean();
        print $buffer;
        print ']]>' . '</data>' . "\n";
        print "\t" . '</item>' . "\n";
    }
}
4

0 に答える 0