Potreboval by som v ajaxe zmenit charset na windows-1250.
(povodne som je nastaveny myslim na UTF-8)
neviete ako na to?
Nefunguje mi napriklad ked vlozim pismeno ´ť´ a potom ma skript v MySQL databaze hladat zhodu s ť nenajde.
(MySQL aj ostatne PHP dokumenty som prestavil a funguju, akurat AJAX nie, myslim ze by trebalo nastavit charset XML, alebo JavaScripu)
Ak mi vie niekto skusenejsi poradit vopred dakujem.
No, mělo by stačit změnit kódování v javascriptu (přímo souboru se skriptem), případně jej do stránky vkládat s informací o kódování:
<script type="text/javascript" src="file.js" charset="windows-1250"></script>
Pokud (náhodou) ne, tak můžeš zkusit poslat přímo header s informací o kódování:
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=windows-1250");
<HTML>A nebylo by lepší přejít na UTF-8?</HTML>
Nipal: mozno by aj bolo lepsie, ale teraz je to uz nemyslitelne, lebo cela stranka je v windows-1250 aj databaza....
Freeze: skusal som obidve moznosti, aj v php som cez header nastavil charset, ale nepomohlo nechapem preco.
pre porozumenie pripojim zdrojak casti s JS:
mozno najdete chybu
<script type="text/javascript" charset="windows-1250">
function obnovenie() {
var http_request = false;
if (window.ActiveXObject) {
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (eror) {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else if (window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
}
http_request.onreadystatechange = function() { vypis(http_request); };
http_request.open('POST', 'priatelia-refresh.php', true);
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=windows-1250");
http_request.send(null);
}
function vypis(http_request) {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
document.getElementById("zoznam").innerHTML=http_request.responseText;
} else {
}
setTimeout("obnovenie()", 5 * 1000);
}
}
function Pridat() {
var http_request = false;
var string = document.getElementById('meno').value;
var request = "meno="+string;
if (window.ActiveXObject) {
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (eror) {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else if (window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
}
http_request.onreadystatechange = function() { vypis2(http_request); };
http_request.open('POST', 'priatelia-pridat.php', true);
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=windows-1250");
http_request.send(request);
}
function vypis2(http_request) {
pole = ["<br>Musíš sa prihlásiť.","Nezadal si žiadne meno.","Užívateľ neexistuje.","Seba nemôžeš pridať.","Užívateľ už je v priateľoch.","Užívateľ bol pridaný."];
if (http_request.readyState == 4) {
if (http_request.status == 200) {
request="<br>"+pole[http_request.responseText];
if (http_request.responseText!=0) request=request+"<br><br><input type=button value=OK onclick=\"document.getElementById('info3').style.display= 'none'\">"
document.getElementById("info3").innerHTML=request;
} else {
}
}
}
</script>
nachadza sa to v <head>, myslim ze to s tym nema nic spolocne, ale neviem kde je chyba tak pre istotu to pisem...
pred scriptom je php:
<?
header("Content-Type: text/html; charset=windows-1250");
?>
<HTML>Já to přeformuluji: nebylo by jednodušší přejít na UTF-8? Databáze jde zkonvertovat, skripty taky...</HTML>
Fantom: Pokud zmíněný soubor má správné kódování uvedeno i v meta tagu, tak je problém kdoví kde. (Preventivně ještě doporučím vymazání cache, ctrl+f5). V takovém případě bych taky přešel na utf-8 :)
som zmenil na utf-8 a funguje aj ajax aj databaza aj vsetko ostatne, okrem obycajneho textu vpisaneho v dokumente ako to mozem opravit?
mozno je chyba v tom ze pouzivam klasicky notepad na upravu? alebo treba kazde pismeno s diakritikou nahradit kodom?
podarilo sa mi najst riesenie, ktore sam nechapem :D:D
teda zmenil som kodovanie na utf-8 len v casti ajaxu s JS, teda v tej uvedenej vyssie, zaujimave je ze cela stranka, kde ten JS je, je vo win 1250 :D
ale dolezite ze funguje vsetko :D
diki za pomoc