Eιδοποίηση του χρήστη όταν δεν έχει σωστό encoding

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
alkisg
Δημοσιεύσεις: 265
Εγγραφή: 03 Ιουν 2005 11:53
Τοποθεσία: Ιωάννινα
Επικοινωνία:

Eιδοποίηση του χρήστη όταν δεν έχει σωστό encoding

Δημοσίευση από alkisg » 13 Νοέμ 2006 20:57

Σώστε το παρακάτω σαν test.htm και ανοίξτε το με οποιονδήποτε browser.
Διαλέξτε encoding iso-8859-7 (ή autodetect). Θα σας πει "correct encoding".
Διαλέξτε οποιοδήποτε άλλο encoding. Θα σας πει "change your encoding".
Μικρό σκριπτάκι, χρήσιμο για χρήστες που βλέπουν με λάθος encoding τη σελίδα σας και θέλουν :hammer:
:lol: :lol: :lol:

Κώδικας: Επιλογή όλων

<html> 
<head> 
<script type="text/javascript"> 
var str = '&#182;λκης'; 
var correctCodes = &#91;902, 955, 954, 951, 962&#93;; 
var correctEncoding = true; 

if &#40;str.length != correctCodes.length&#41; 
  correctEncoding = false; 
else &#123; 
  for &#40;i = 0; i < str.length; i++&#41; 
    if &#40;str.charCodeAt&#40;i&#41; != correctCodes&#91;i&#93;&#41; &#123; 
      correctEncoding = false; 
      break; 
    &#125; 
&#125;    
if &#40;correctEncoding&#41; 
  document.write&#40;'Your encoding &#40;iso-8859-7&#41; is correct!'&#41;; 
else 
  document.write&#40;'Change your encoding to iso-8859-7 to correctly view this page'&#41;; 
</script> 
</head> 
<body> 
<p>My name is &#182;λκης... Do you see it correctly?</p> 
</body> 
</html>
Επεξήγηση: επειδή οι πιο πολλοί θα χρησιμοποιήσετε Notepad, έγραψα το Ά σαν &#182;, το οποίο είναι η "μετάφραση" του Ά στην windows-1253 κωδικοσελίδα που χρησιμοποιεί το Notepad.

Άβαταρ μέλους
changlee
Δημοσιεύσεις: 372
Εγγραφή: 13 Φεβ 2005 00:46
Τοποθεσία: Πειραιάς
Επικοινωνία:

Eιδοποίηση του χρήστη όταν δεν έχει σωστό encoding

Δημοσίευση από changlee » 15 Νοέμ 2006 08:52

alkisg έγραψε:...Διαλέξτε encoding iso-8859-7 (ή autodetect). Θα σας πει "correct encoding"...
Πως γίνεται αυτό; :roll:
Τεχνολογική Ανάπτυξη (1μ.Χ. - 1975) = Τεχνολογική Ανάπτυξη (1975 - Σήμερα)

Μπορείτε να με βρείτε στην κατασκευή ιστοσελίδων BLB.gr | Δωρεάν Disavow File


Άβαταρ μέλους
nirvana
Δημοσιεύσεις: 241
Εγγραφή: 01 Σεπ 2005 18:28
Τοποθεσία: Αγ. Παρασκευή

Eιδοποίηση του χρήστη όταν δεν έχει σωστό encoding

Δημοσίευση από nirvana » 15 Νοέμ 2006 11:33

Εβαλα κυριλλικο encoding (ISO-8859-5) αλλα δεν εγινε κατι..

Κανω κατι λαθος :-?

Άβαταρ μέλους
changlee
Δημοσιεύσεις: 372
Εγγραφή: 13 Φεβ 2005 00:46
Τοποθεσία: Πειραιάς
Επικοινωνία:

Eιδοποίηση του χρήστη όταν δεν έχει σωστό encoding

Δημοσίευση από changlee » 15 Νοέμ 2006 12:06

Και εγώ προσπάθησα και έβαλα Ελληνική (ISO) και iso-8859-7 αλλά:

ο»Ώ Change your encoding to iso-8859-7 to correctly view this page

My name is ’λκηΟ&#65533;... Do you see it correctly?
Πολύ ενδιαφέρον θέμα πάντος, και αναγκαίο!
Τεχνολογική Ανάπτυξη (1μ.Χ. - 1975) = Τεχνολογική Ανάπτυξη (1975 - Σήμερα)

Μπορείτε να με βρείτε στην κατασκευή ιστοσελίδων BLB.gr | Δωρεάν Disavow File

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

Eιδοποίηση του χρήστη όταν δεν έχει σωστό encoding

Δημοσίευση από panosru » 15 Νοέμ 2006 13:17

Emena mou douleyei mia xara! :D
An kai gia ton logo ayto douleyo me UTF-8 (kai as einai diplasios apothikeytikos xoros sthn database)


Άβαταρ μέλους
alkisg
Δημοσιεύσεις: 265
Εγγραφή: 03 Ιουν 2005 11:53
Τοποθεσία: Ιωάννινα
Επικοινωνία:

Eιδοποίηση του χρήστη όταν δεν έχει σωστό encoding

Δημοσίευση από alkisg » 15 Νοέμ 2006 16:10

Πάνο το UTF-8 δεν είναι πανάκεια... Πάλι ο χρήστης μπορεί να έχει λάθος encoding.
Το encoding καθορίζεται από:
1) Τα http headers, που καθορίζονται είτε από τον web server είτε από μια server side γλώσσα όπως η php,
2) Το <meta ...charset> της HTML, και
3) Τις ρυθμίσεις του χρήστη.

Ο σκοπός είναι να προειδοποιήσουμε το χρήστη να επιλέξει το σωστό charset αν οποιοδήποτε από τα παραπάνω είναι λάθος.

Έκανα τρεις versions, μία για κάθε ένα από τα encoding που συνήθως χρησιμοποιούμε. Τις ανοίγετε και παίζετε με τα encodings από το μενού του browser. Αν δεν έχετε διαλεγμένο το σωστό, βγαίνει προειδοποίηση...

http://www.alkisg.com/freestuff/iso-8859-7.htm
http://www.alkisg.com/freestuff/windows-1253.htm
http://www.alkisg.com/freestuff/utf-8.htm

Άβαταρ μέλους
alkisg
Δημοσιεύσεις: 265
Εγγραφή: 03 Ιουν 2005 11:53
Τοποθεσία: Ιωάννινα
Επικοινωνία:

Eιδοποίηση του χρήστη όταν δεν έχει σωστό encoding

Δημοσίευση από alkisg » 15 Νοέμ 2006 20:15

@nirvana, @changelee: Μάλλον αποθηκεύσατε το παράδειγμα με λάθος encoding (λόγω του copy-paste και του editor που χρησιμοποιήσατε), δοκιμάστε την online version.

@eneme: thanks!

Πιο σύντομη έκδοση:

Κώδικας: Επιλογή όλων

<html> 
<head> 
<script type="text/javascript"> 
document.write&#40;String.fromCharCode&#40;902, 955, 954, 951, 962&#41; == 'Άλκης'
 ? '<h1>Your encoding &#40;windows-1253&#41; is correct!</h1>' 
 &#58; '<h1>Change your encoding to windows-1253 to correctly view this page</h1>'&#41;; 
</script> 
</head> 
<body> 
<p>My name is Άλκης... Do you see it correctly?</p> 
</body> 
</html>
Ξέχασα να αναφέρω ότι και οι δύο εκδόσεις απαιτούν Javascript 1.3 ή νεότερη, γιατί οι παλιότερες δεν υποστηρίζουν Unicode... οποιονδήποτε δηλαδή μοντέρνο browser.

Άβαταρ μέλους
changlee
Δημοσιεύσεις: 372
Εγγραφή: 13 Φεβ 2005 00:46
Τοποθεσία: Πειραιάς
Επικοινωνία:

Eιδοποίηση του χρήστη όταν δεν έχει σωστό encoding

Δημοσίευση από changlee » 15 Νοέμ 2006 23:32

Με τι encoding προτείνεις να αποθηκεύσουμε;
Τεχνολογική Ανάπτυξη (1μ.Χ. - 1975) = Τεχνολογική Ανάπτυξη (1975 - Σήμερα)

Μπορείτε να με βρείτε στην κατασκευή ιστοσελίδων BLB.gr | Δωρεάν Disavow File

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

Eιδοποίηση του χρήστη όταν δεν έχει σωστό encoding

Δημοσίευση από panosru » 15 Νοέμ 2006 23:38

@changlee dokimaseto me to notepad, giati pola programmata px dreamweaver zend ktl apothikeyoun ta files me encoding pou exoun prokathorismeno h pou exeis orisei esy.

@alkisg koita enohte pos tha fronthseis kai c na exeis to katalhlo encoding kai apo pleyras html/php (h opoiadhpote allh glossa) coding kai apo pleras database.

Άβαταρ μέλους
changlee
Δημοσιεύσεις: 372
Εγγραφή: 13 Φεβ 2005 00:46
Τοποθεσία: Πειραιάς
Επικοινωνία:

Eιδοποίηση του χρήστη όταν δεν έχει σωστό encoding

Δημοσίευση από changlee » 16 Νοέμ 2006 09:46

Με το notePad το έσωσα αλλά με τις νέες εκδόσεις που ανέβασες είναι μια χαρά!
Τεχνολογική Ανάπτυξη (1μ.Χ. - 1975) = Τεχνολογική Ανάπτυξη (1975 - Σήμερα)

Μπορείτε να με βρείτε στην κατασκευή ιστοσελίδων BLB.gr | Δωρεάν Disavow File

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες