Feb 11 2006

Κακή υποστήριξη Unicode από το Simple Machines Forum (SMF)

Αρκετοί χρήστες πρέπει να έχουν παρατηρήσει την πολύ κακή υποστήριξη Unicode στο λογισμικό του forum SMF.

Συγκεκριμένα, δεν μπορεί να εμφανιστεί ο χαρακτήρας Π στο σώμα (body) μιας εγγραφής. Ο λόγος που συμβαίνει το πρόβλημα αυτό είναι εξαιρετικά απλός.
Υπάρχει κώδικας στο SMF που μετατρέπει την αλλαγή γραμμής (0x0a) σε html entity για αλλαγή γραμμής, στα σώματα (body) των εγγραφών. Η εντολή που κάνει την δουλειά αυτή δεν αναγνωρίζει Unicode – θεωρεί ότι οι χαρακτήρες είναι πάντα ενός byte. Έτσι, το ελληνικό Π στην κωδικοποίηση UTF-8 αποτελείται από τα byte

CE 0A

και το SMF καταστρέφει το δεύτερο byte!

Τι μπορεί να γίνει; Να μη γίνεται χρήση της substr (not Unicode-safe) αλλά της mb_substr (http://uk2.php.net/mb_substr).

Παρόμοιο πρόβλημα συμβαίνει και στην περικοπή των τίτλων εγγραφών στην εμφάνιση περιλήψεων. Για παράδειγμα,

Σήμερα στις 18:31:46
σε Απ: SMF και σωσ�…
από Χρήστης

Ο κώδικας του SMF χρησιμοποιεί την εντολή substr() για να κόψει τον τίτλο και την δημιουργία περικοπής. Ανάλογα με την περίσταση, η εντολή substr() κόβει μέσα σε χαρακτήρα utf-8 πολλαπλών byte.

Ποιά είναι η λύση; Χρήση legacy 8-bit κωδικοποίηση;

Η λύση είναι στην διόρθωση του SMF.

Permanent link to this article: https://blog.simos.info/%ce%ba%ce%b1%ce%ba%ce%ae-%cf%85%cf%80%ce%bf%cf%83%cf%84%ce%ae%cf%81%ce%b9%ce%be%ce%b7-unicode-%ce%b1%cf%80%cf%8c-%cf%84%ce%bf-simple-machines-forum-smf/

2 comments

    • Τάκης on March 31, 2006 at 19:51
    • Reply

    Τους έχεις ενημερώσει γι’αυτό;

  1. Το γνωρίζουν ήδη και προχωρούν με το βαθμό που μπορούν.

Leave a Reply

%d bloggers like this: