Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

καλημερα καλημερα

 

φτιαχνω ενα site και εχω προβλημα με το character encoding

εχω δηλώσει utf8 general ci στη βαση δεδομενων

απο κει κανω fetch καποιες λεξεις στα ελληνικα

απο php που ειναι τα μετατρεπω σε javascript (τους πινακες) . τα θελω σε javascript γιατι μετα θα χρησιμοποιηθουν σε svg/javascript κομματι του κωδικα

 

ο κωδικας μετατροπης ειναι ο εξης

><script type="text/javascript" language="JavaScript" charset="utf-8">
var names=[]; 
<?
for($i=0;$i<$b; $i++)
   {echo "names[$i]='".$name[$i]."';\n";}
?>
</script>

 

μετα, παρακατω, με javascript φτιαχνω καποια ονοματα να εμφανιστουν στο svg με αυτον τον κωδικα, οποτε εκει χρησιμοποιω τους javascript πινακες

 

>function createText() {
for (var i = 0 ; i < <?=$a?> ; i++){
var newText = document.createElementNS(svgNS,"text");
newText.setAttributeNS(null,"x",x[i]);	
newText.setAttributeNS(null,"y",y[i]);
newText.setAttributeNS(null,"font-family","arial");
newText.setAttributeNS(null,"font-size","15px");
newText.setAttributeNS(null,"fill","black");
newText.setAttributeNS(null,"opacity",1);
animateO = document.createElementNS(svgNS, "animate");
animateO.setAttributeNS(null,"attributeName","opacity");
animateO.setAttributeNS(null,"from","0.5");
animateO.setAttributeNS(null,"to","1");
animateO.setAttributeNS(null,"dur","2s");
animateO.setAttributeNS(null,"repeatCount","1");    
newText.appendChild(animateO);
var txtNod = document.createTextNode(names[i]);
newText.appendChild(txtNod);
document.getElementById("rectGroup").appendChild(newText);
}
}

 

ολοι οι ελληνικοι χαρακτηρες βγαινουν "κινεζικα" ενω οι αγγλικοι μια χαρα

 

το προβλημα εμφανιζεται μονο στο chrome, ενω στον explorer ολα ok!

 

ο chrome ειναι ρυθμισμενος σε utf-8, αλλα μολις ανοιξω το site, γυρναει σε "ελληνικα iso 8859-7"

 

ρε παιδια plz βοηθηστε λιγο, εχω κολλησει ασχημα

 

ευχαριστω

Δημοσ.

Πρώτον:

 

>var names=[]; 
       <?
       for($i=0;$i<$b; $i++)
   {echo "names[$i]='".$name[$i]."';\n";}
       ?>

 

Τζάμπα κόπος, συν οτι αν έχεις single quotes σε κάποιο στοιχείο του πίνακα θα σου γράψει Javascript με συντακτικό σφάλμα. Κάντο έτσι:

 

>echo 'var names='.json_encode($name).';';

 

Δεύτερον, τι εννοείς "o chrome είναι ρυθμισμένος σε utf-8"? Δηλαδή δεν είναι ενεργοποιημένο το auto detect? Γιατί αν είναι τότε προφανώς δεν είναι ρυθμισμένος σε utf-8.

 

Όπως και να χει δε θέλεις να κλειδώσεις τον browser σου σε ένα encoding, άσε που και να το κάνεις πάλι αυτό θα είναι λύση μόνο για τον συγκεκριμένο browser σε συγκεκριμένο υπολογιστή.

 

Δοκίμασε κάπου στην αρχή (πριν κάνεις echo οτιδήποτε) να δώσεις

 

>header('Content-Type: text/html; charset=UTF-8');

 

γιατί λογικά δεν το κάνεις ήδη.

Δημοσ.

ναι ρε θεέ defacer!!!!

εκανα οτι ειπες κ δουλευει μια χαρα τωρα...

thanxzzzzzzzzzz

 

για το chrome εννούσα οτι το ειχα ρυθμισει σε utf8 και μολις παταγα f12 στο dreamweaver για να δω το site, ο chrome "γυρναγε" σε "ελληνικα iso-8859-7"...καμια ιδεα?ετσι, για να μ φυγει η απορια?

 

ευχαριστω κ παλι....

Δημοσ.

Γύρναγε = προσπαθούσε να μαντέψει σε τι character encoding είναι το site σου και δεν τα κατάφερνε (δηλαδή μάντευε λάθος).

 

Γενικά η μαντεψιά αυτού του είδους δεν είναι δυνατόν να γίνει σωστά, είναι για να δώσω ένα "ανθρώπινο" παράδειγμα σα να σου δείχνω μια λέξη και να σε ρωτάω αν είναι ισπανικά, πορτογαλικά ή βραζιλιάνικα πορτογαλικά. Κατα περίπτωση μπορεί να καταφέρεις να μου απαντήσεις, αλλά γενικά δεν παίζει. Εμένα π.χ. ένα πρόγραμμα που χρησιμοποιώ όταν του ταϊσω κείμενο σε iso-8859-7 νομίζει ότι είναι... βιετναμέζικα. Δεν έχει τρόπο να ξέρει απο μόνο του.

 

Γι' αυτό βάζεις το header για να πεις στον browser τι character encoding χρησιμοποιείς και να μη χρειάζεται να μαντέψει.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...