Ajax és a karakterkódolás
Mozilla + UTF-8 + Input + jQuery.Ajax(get) == OK
IE8 + UTF-8 + Input + jQuery.Ajax(get) != OK
Ezekkel a képletekkel tudnám legegyszerűbben jellemezni a hibát(?) amibe ütköztem. A lényeg, hogy van egy oldalam, mindenhol utf-8as headerrel, plusz egy input mezőm, aminek az értékét gombnyomásra hozzáadom egy adatbázishoz jQuery.Ajax segítségével.
Mo-ban tökéletesen működik, ám az IE8-nak meggyűlik a baja az ékezetes betűkkel.
Már a php-nak is hibásan küldi el a karaktereket. Én még nem találkoztam hasonlóval, de nagyon megköszönném, ha valaki tudná ezt orvosolni.
jQuery.ajax
Előre is köszönöm a segítséget!
insert_tema.phpJa és az input-ot meg ilyen módon varázsolom elő
■ IE8 + UTF-8 + Input + jQuery.Ajax(get) != OK
Ezekkel a képletekkel tudnám legegyszerűbben jellemezni a hibát(?) amibe ütköztem. A lényeg, hogy van egy oldalam, mindenhol utf-8as headerrel, plusz egy input mezőm, aminek az értékét gombnyomásra hozzáadom egy adatbázishoz jQuery.Ajax segítségével.
Mo-ban tökéletesen működik, ám az IE8-nak meggyűlik a baja az ékezetes betűkkel.
Már a php-nak is hibásan küldi el a karaktereket. Én még nem találkoztam hasonlóval, de nagyon megköszönném, ha valaki tudná ezt orvosolni.
jQuery.ajax
$("#insert_tema").click(function(){
$.ajax({
type:"GET",
url:"pgs/insert_tema.php",
data:"cim="+$("#tema_cime").val(), //ez az input mező
async:true,
contentType: "text/html; charset=utf-8",
success: function(msg)
{
$("#csevego_tabla tbody").append(msg);
}
});
});
Előre is köszönöm a segítséget!
insert_tema.php
<?
header("Content-Type: text/html; charset=utf-8");
date_default_timezone_set("Europe/Budapest");
include 'kapcsolat.php';
$cim=$_GET['cim'];
$user=$_GET['user'];
mysql_query("insert into....");
echo "<tr><td>".$cim."</td> <td>".date("Y-m-d H:i:s")."</td> <td></td> <td>0</td> <td></td> </tr>";
mysql_close($c);
?>
$("#uj_tema").click(function(){
$("#insert_tema").css({"visibility":"visible"});
$("#beszur").html('<input type="text" name="tema_cime" id="tema_cime"></input>'); //így ni!
});
más..
A két böngésző különböző módon kezeli a karakterkódolás beállítását. Az egyik figyelembe veszi az utólag beállított oldal kódolást, míg a másik, magának a fájlnak a kódolását (ha megnyitod valami értelmesebb szerkesztővel, pl. notepad++, akkor ott kiírja milyen kódolású a fájl és könnyen konvertálhatós is) nézi.
Nekem is volt hasonló problémám ajax-al. Ott úgy lett megoldva, hogy FF UTF-8-as, míg az IE latin2-es kódolást kapott. Így tökéletesen működött..
Mondjuk az a legtisztább, ha megoldható, akkor átnézed a fájljaid kódolását és mindet beállítod UTF-8-ra (véletlenül se UTF-8 DOM-ra).
Remélem tudtam segíteni!
üdv, Gábor
így sem oké...
Még azt nem tudom pontosan, hogy minden egyes include-olt meg javascripttel load-olt oldalon kötelezően kell lenni html,head,body tag-nek, doctype-nak, vagy csak elég az index oldalon (ide töltök mindent lényegében)?
mi a js file
Mivel szolgálódik ki
utf-8 (bom nélkül)
sajnos
Szerinted a js fájl kódolása lett volna a hunyó.. ? Elképzelhető..
Ennek én is utánna nézek majd!
Köszi a tippet! :)
üdv, Gábor
OFF: az a DOM, természetesen BOM akart lenni.. :) /OFF
A data tulajdonság key/value párként
Ott a pont!