Inne kodowanie formularza [<form.....]


(Dylewzgr) #1

Witam mam pewien problem z kodowaniem znaków, a mianowicie strona którą robie ma kodowanie ISO-8859-2 ale na stronie znajduje sie formularz który wysyła frazę do innej strony, która jest kodowana w UTF-8.

O to kod tego formularza:

Czy jest możliwość przed wysłaniem frazy przekodowania z ISO-8859-2 na UTF-8 ?? Szukając w internecie znalazłem takie rozwiązanie :

lecz ono tylko działa w Mozilli , a w IE7 już nie..;/

Proszę o pomoc i dziękuje z góry.


(inż. Piniol) #2

Spróbuj z tym


(Dylewzgr) #3

Niestety nie działa... :frowning: :frowning: :frowning:


(Kubarek) #4

To zmień kodowanie swojej strony na UTF8 :wink:


(Dylewzgr) #5

To odpada bo na stronie są inne formularze kodowane na ISO-8859-2... :stuck_out_tongue:


(inż. Piniol) #6

No to spróbuj zakodować zawartość inputów poniższą funkcją w JavaScript:

// {{{ utf8_encode

function utf8_encode ( str_data ) {

    // Encodes an ISO-8859-1 string to UTF-8

    // 

    // + discuss at: http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_utf8_encode/

    // + version: 805.821

    // + original by: Webtoolkit.info (http://www.webtoolkit.info/)

    // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)        

    // * example 1: utf8_encode('Kevin van Zonneveld');

    // * returns 1: 'Kevin van Zonneveld'


    str_data = str_data.replace(/\r\n/g,"\n");

    var tmp_arr = [], ac = 0;


    for (var n = 0; n < str_data.length; n++) {

        var c = str_data.charCodeAt(n);

        if (c < 128) {

            tmp_arr[ac++] = String.fromCharCode(c);

        } else if((c > 127) && (c < 2048)) {

            tmp_arr[ac++] = String.fromCharCode((c >> 6) | 192);

            tmp_arr[ac++] = String.fromCharCode((c & 63) | 128);

        } else {

            tmp_arr[ac++] = String.fromCharCode((c >> 12) | 224);

            tmp_arr[ac++] = String.fromCharCode(((c >> 6) & 63) | 128);

            tmp_arr[ac++] = String.fromCharCode((c & 63) | 128);

        }

    }


    return tmp_arr.join('');

}// }}}

(Dylewzgr) #7

Oki spróbuję, jak zadziała lub nie to się odezwę.

Dzięki z góry.

W dniu 20.05.2008 , o godzinie 19:03 został dopisany post przez dylew

No nie wiem coś nie działa może to moja wina, wygląda to tak :

function UTF (){

	ktory_input=document.getElementById("TXT_1");

	ktory_input.value=utf8_encode;

	}


// {{{ utf8_encode

function utf8_encode ( str_data ) {

    // Encodes an ISO-8859-1 string to UTF-8

    //

    // + discuss at: http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_utf8_encode/

    // + version: 805.821

    // + original by: Webtoolkit.info (http://www.webtoolkit.info/)

    // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)       

    // * example 1: utf8_encode('Kevin van Zonneveld');

    // * returns 1: 'Kevin van Zonneveld'


    str_data = str_data.replace(/\r\n/g,"\n");

    var tmp_arr = [], ac = 0;


    for (var n = 0; n < str_data.length; n++) {

        var c = str_data.charCodeAt(n);

        if (c < 128) {

            tmp_arr[ac++] = String.fromCharCode(c);

        } else if((c > 127) && (c < 2048)) {

            tmp_arr[ac++] = String.fromCharCode((c >> 6) | 192);

            tmp_arr[ac++] = String.fromCharCode((c & 63) | 128);

        } else {

            tmp_arr[ac++] = String.fromCharCode((c >> 12) | 224);

            tmp_arr[ac++] = String.fromCharCode(((c >> 6) & 63) | 128);

            tmp_arr[ac++] = String.fromCharCode((c & 63) | 128);

        }

    }


    return tmp_arr.join('');

}// }}}

a form tak:

Czy tu jest jakiś błąd?? Jeśli tak to proszę o wskazanie go i prawidłową postać. Dziękuje z góry


(inż. Piniol) #8
function UTF (){

   ktory_input=document.getElementById("TXT_1");

   ktory_input.value=utf8_encode(ktory_input.value);

   }

(Dylewzgr) #9

Dzięki wielkie :slight_smile: , ale nie działa jak sie spodziewałem wiec muszę jeszcze popracować nad tym...

Jeszcze raz WIELKIE DZIĘKI i jak będę miał jakieś konkretne rozwiązanie tego problemu lub jakiś problem to napisze :wink:

W dniu 20.05.2008 , o godzinie 23:40 został dopisany post przez dylew

Czy możliwe, że to rozwiązanie nie działa prawidłowo dlatego bo dekoder dekoduje z ISO-8859-1, a nie z ISO-8859-2 ??


(Aktychy) #10

jeżeli masz dostęp do php

$zmienna_przekonwertowana = iconv("iso-8859-2", "utf-8", $_GET["zmienna_z_formularza"]);


(Dylewzgr) #11

No niestety nie umiem jeszcze php....

a ta "zmienna_z_formularza" to id ??