NiKoS WSN Δημοσ. 30 Νοεμβρίου 2012 Δημοσ. 30 Νοεμβρίου 2012 Έχω ένα πρόβλημα με το encoding... Βάζω στον κώδικά μου αυτό > <?php setlocale(LC_CTYPE, 'greek'); setlocale(LC_TIME, 'greek'); $date = strftime (" %A - %d %b. %Y"); echo $date; ?> και όταν βάζω > <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Language" content="el"> δεν μου εμφανίζει την ημερομηνία παρά μόνο ��������, ενώ όταν βγάλω το utf-8 μου αναγνωρίζει την ημερομηνία αλλά τίποτα άλλο ελληνικό... Υπάρχει λύση;
defacer Δημοσ. 1 Δεκεμβρίου 2012 Δημοσ. 1 Δεκεμβρίου 2012 (επεξεργασμένο) Κατ' αρχήν οι locale-based συναρτήσεις όπως η strftime δεν είναι κατάλληλες για σοβαρή δουλειά (π.χ. καλή τύχη αν θέλεις να βγάλεις "1 Δεκεμβρίου 2012"), οπότε όπου χρειάζεται σοβαρή δουλειά χρησιμοποιείς custom. Επιπλέον τo locale που χρησιμοποιείς ("greek") ισχύει αν θυμάμαι καλά μόνο σε Windows, οπότε μεταφέροντας τον κώδικα σε Linux φαντάζομαι ότι θα σταματήσει να δουλεύει ακόμα και μισο-σωστά. Αφήνω μια πισινή ότι μπορεί να κάνω λάθος γιατί δεν ασχολούμαι ιδιαίτερα, όπως είπα δεν έχει νόημα να ασχολείσαι με C locales γιατί σε περιβάλλον web απλά δεν σε καλύπτουν. Σχετικά με το πρόβλημά σου: η locale που χρησιμοποιείς έχει single-byte encoding, το Windows-1253 (κάπου στο MSDN τα λέει αυτά αλλά είναι πιο δύσκολο απ' ότι θα έπρεπε για να το βρω). Προφανώς και δεν θα δουλέψει σωστά αν κάνεις echo το αποτέλεσμα σε μια σελίδα UTF-8. Αν ήθελες να το κάνεις να δουλέψει, η ελάχιστη σωστή αλλαγή θα ήταν μια μετατροπή με iconv ή mb_convert_encoding: >$date = strftime (" %A - %d %b. %Y"); echo iconv('Windows-1253', 'UTF-8', $date); Τέλος καλό θα ήταν αν έχεις τη δυνατότητα να μην καθορίζεις το encoding με το <meta> tag (παραλείπω μακροσκελή τεχνική γκρίνια) και να χρησιμοποιείς το απείρως προτιμότερο >header('Content-Type: text/html; charset=utf-8'); Επεξ/σία 2 Δεκεμβρίου 2012 από defacer 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα