Κακή υποστήριξη 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

This site uses Akismet to reduce spam. Learn how your comment data is processed.