Σελίδα 1 από 1

htmlentities και ελληνικοί χαρακτήρες

ΔημοσίευσηΔημοσιεύτηκε: 19/04/2015 18:44
από Σεμπαστιάν Νικολάου
Καλησπέρα,

αντιμετωπίζω ένα θέμα με τους ελληνικούς χαρακτήρες στα views.
Χρησιμοποιώ το LaravelCollective/html για το laravel 5, αντίστοιχα με τα HTML/Form facades στο laravel 4, αλλά το πρόβλημα υπάρχει ακόμα και με τα double/triple quotes στα blade views.

Όταν εισάγω κάποιο string στα ελληνικά σε UTF-8 – ανεξαρτήτως πηγής (database / request / hardcoded) – ΠΑΝΤΑ μετατρέπεται σε named html entities. Π.χ. όταν βάζω
Κώδικας: Επιλογή όλων{{ 'Πελάτες' }}
το output θα είναι
Κώδικας: Επιλογή όλωνΠελάτες
.

Καταλαβαίνω πως είναι σωστό από μία άποψη γιατί τρέχει η συνάρτηση e().

Δεν ξέρω αν είναι καλύτερα να μην μετατρέπονται τα ελληνικά σε htmlentites, και αν είναι εφικτό. Σας έχει τύχει; Πως το έχετε αντιμετωπίσει;

Re: htmlentities και ελληνικοί χαρακτήρες

ΔημοσίευσηΔημοσιεύτηκε: 05/05/2015 09:29
από NikosV
Δεν είχα ποτέ τέτοιο πρόβλημα. Μήπως έχει να κάνει με το encoding της html.
Δοκίμασε να βάλεις στο head
Κώδικας: Επιλογή όλων<meta charset="utf-8"/>

Re: htmlentities και ελληνικοί χαρακτήρες

ΔημοσίευσηΔημοσιεύτηκε: 09/05/2015 12:28
από G.Drakakis
Ένας γρήγορος τρόπος θα ήταν να αλλάξεις το 'htmlentities' με 'htmlspecialchars' στον helper e().

Στο μεταξύ θα κοιτάξω ένα πιο παλιό Project, και θα σου πω αν το είχα κάνει αλλιώς.

Re: htmlentities και ελληνικοί χαρακτήρες

ΔημοσίευσηΔημοσιεύτηκε: 17/05/2015 14:32
από Σεμπαστιάν Νικολάου
NikosV έγραψε:Δεν είχα ποτέ τέτοιο πρόβλημα. Μήπως έχει να κάνει με το encoding της html.
Δοκίμασε να βάλεις στο head
Κώδικας: Επιλογή όλων<meta charset="utf-8"/>


Όλα τα views μου έχουν meta charset utf-8. Η κωδικοποίηση είναι σωστή και μου εμφανίζει τους χαρακτήρες σωστά. Το πρόβλημα είναι στο output της html.

Re: htmlentities και ελληνικοί χαρακτήρες

ΔημοσίευσηΔημοσιεύτηκε: 17/05/2015 14:34
από Σεμπαστιάν Νικολάου
G.Drakakis έγραψε:Ένας γρήγορος τρόπος θα ήταν να αλλάξεις το 'htmlentities' με 'htmlspecialchars' στον helper e().

Στο μεταξύ θα κοιτάξω ένα πιο παλιό Project, και θα σου πω αν το είχα κάνει αλλιώς.


Αυτό πρακτικά είναι σωστό! Αλλά φοβάμαι να πειράξω την e(), μιας και χρησιμοποιείται σε πολλά σημεία του Illuminate. Θα το δοκιμάσω πάντως.

Re: htmlentities και ελληνικοί χαρακτήρες

ΔημοσίευσηΔημοσιεύτηκε: 18/05/2015 11:32
από G.Drakakis
Δεν έχεις λόγο να φοβάσαι κάτι ειδικότερα αν κάνεις μόνο HTTP requests. Λέω να ρωτήσω τον Taylor καποια στιγμή παρόλα αυτά, αν μου πει κάτι άλλο θα επανέλθω.

Re: htmlentities και ελληνικοί χαρακτήρες

ΔημοσίευσηΔημοσιεύτηκε: 04/06/2016 11:29
από G.Drakakis
Αν ειναι plain text που διαβάζεται απο αρχείο γλώσσας, μπορείς να χρησιμοποιήσεις αυτό.

Κώδικας: Επιλογή όλων{!! trans('app.youMustAgree') !!}


και δεν θα χρησιμοποιηθεί η defaut e() του framework που δημιουργεί το πρόβλημα.

Re: htmlentities και ελληνικοί χαρακτήρες

ΔημοσίευσηΔημοσιεύτηκε: 06/12/2016 12:25
από G.Drakakis
Έπεσα πάνω σε αυτό. https://laracasts.com/discuss/channels/general-discussion/override-functions-in-supporthelpersphp

Ενδιαφέρον τρόπος να κάνεις ovveride την e() και να μην σε απασχολούν τα updates του framework.

Re: htmlentities και ελληνικοί χαρακτήρες

ΔημοσίευσηΔημοσιεύτηκε: 11/12/2016 16:36
από Σεμπαστιάν Νικολάου
Μόλις ανακάλυψα ότι η htmlentities αντικαταστήθηκε με την htmlspecialchars() στην έκδοση 5.3!
https://github.com/laravel/framework/pull/15159