dylew
(Dylewzgr)
19 Maj 2008 16:31
#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.
kubar3k
(Kubarek)
19 Maj 2008 18:00
#4
To zmień kodowanie swojej strony na UTF8
dylew
(Dylewzgr)
19 Maj 2008 18:18
#5
To odpada bo na stronie są inne formularze kodowane na ISO-8859-2…
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('');
}// }}}
dylew
(Dylewzgr)
20 Maj 2008 17:03
#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
function UTF (){
ktory_input=document.getElementById("TXT_1");
ktory_input.value=utf8_encode(ktory_input.value);
}
dylew
(Dylewzgr)
20 Maj 2008 21:40
#9
Dzięki wielkie , 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
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
(Aktychy)
20 Maj 2008 22:40
#10
jeżeli masz dostęp do php
$zmienna_przekonwertowana = iconv(“iso-8859-2”, “utf-8”, $_GET[“zmienna_z_formularza”]);
dylew
(Dylewzgr)
21 Maj 2008 11:06
#11
No niestety nie umiem jeszcze php…
a ta “zmienna_z_formularza” to id ??