Mi blog lah! Το ιστολόγιό μου

11Feb/062

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

Related posts:

  1. Unicode και ελεύθερο λογισμικό
  2. Παίζοντας με Unicode
  3. dpgr.gr και Unicode
  4. Προβληματικές συμπεριφορές στο adslgr.com/Forum του Linux
  5. Unicode ξανά

About Simos

No description. Please complete your profile.
Comments (2) Trackbacks (0)
  1. Τους έχεις ενημερώσει γι’αυτό;

    Like or Dislike: Thumb up 0 Thumb down 0

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

    Like or Dislike: Thumb up 0 Thumb down 0


Leave a comment


Comments are filtered through Akismet for spam detection. Use of a non-personal web site or blog URL in the field below and/or comments that are off-topic or personal attacks will likely be removed at my discretion. Your opinions are welcome but please keep them polite and constructive.

Trackbacks are disabled.

Switch to our mobile site