Γιατί δεν εμφανίζ&eps ilon;ται το άρθρο μου;;; - Η Λύση!

Day 697, 14:34 Published in Greece Greece by SmashTheFash


ENGLISH VERSION

Hello!

This article is about a bug existent in writting articles but as there are no English words bigger than 40 characters, it does not concern you... Have a nice day!




GREEK VERSION

Γειά σας!

Λοιπόν, πρώτα από όλα και για να καταλάβετε τα πρώτα σχόλια, ξεκίνησα το άρθρο με τίτλο TEST - WILL BE DELETED IN 2 MINUTES, αλλά αφού είχε ήδη πάρει 11 votes περιέχοντας μόνο ασυναρτησίες (patterns από γράμματα και αριθμούς), τελικά αποφάσισα να κάνω άρθρο με τα συμπεράσματά μου αφού κατάφερα να βγάλω τελικά!

Πιθανόν να είστε ένας από τους αρκετούς που αφού έγραψαν ολόκληρο άρθρο, το δημοσίευσαν μόνο για να δουν ότι δεν εμφανίζεται τίποτα! Εγώ το έπαθα μόλις με το δεύτερό μου άρθρο, όπου εντόπισα το πρόβλημα στην λέξη "Αντικειμενικότητα"! Έτσι αποφάσισα να το ψάξω λίγο παραπάνω.

Αφορμή στάθηκε εκτός από το προηγούμενο άρθρο μου και ένα σχόλιο του GreekHistoryX κάπου που ένα άρθρο δεν εμφανιζόταν και όπου είπε ότι για αυτό έφταιγε κάποιο bbcode που δεν είχε κλείσει σωστά.

Ψάχνοντας λοιπόν διαπίστωσα το εξής:
Ο κειμενογράφος του eRepublik, κόβει αυτόματα όποια λέξη είναι πάνω από 40 χαρακτήρες. Σωστό αυτό, ώστε αν κάποιος γράψει κάτι τεράστιο χωρίς κενά να μην παραμορφώνεται η σελίδα. Το πρόβλημα είναι ότι λόγο της κωδικοποίησής τους σε UTF-8 (Unicode) οι Ελληνικοί χαρακτήρες καταλαμβάνουν δύο θέσεις (το ίδιο και οι Ρώσικοι, οι Farsi, οι Αράβικοι κλπ κλπ).

Λέξεις 40 χαρακτήρων δεν υπάρχουν, αλλά η Ελληνική περιέχει πολλές μεγάλες λέξεις και σίγουρα μπορεί να περάσει μια λέξη τους 15 χαρακτήρες αρκετά συχνά... Αν κιόλας η λέξη αυτή περικλείεται από tags, τότε δημιουργείται πρόβλημα! Παράδειγμα (το πρόβλημά μου στο προηγούμενο):

Θα χρησιμοποιήσω greeklish και { } αντί για τα κανονικά brackets [ ] ώστε να φαίνεται στην οθόνη ακριβώς ότι θα θέλαμε.
Γράφεις "Αντικειμενικότητα:" και θέλεις να βγει σε bold. Άρα πρέπει να γράψεις:
{b}Antikeimenikothta:{/b}
Αφού όμως οι Ελληνικοί χαρακτήρες μετράνε για δύο, έχουμε στη σειρά χαρακτήρες
{b} - τρεις
Αντικειμενικότητα - δεκαεφτά Ελληνικούς (άρα 34)
: - έναν
Σύνολο: 38!
Και αφού το όριο είναι 40, μετά από δύο μόνο χαρακτήρες ακόμα θα μπει από μόνο του ένα κενό, κόβοντας το κλείσιμο του tag στη μέση!!! Αποτέλεσμα:
{b}Antikeimenikothta:{/ b}
Αυτό φυσικά είναι λάθος, και κάνει ολόκληρο το άρθρο να εξαφανίζεται από την οθόνη όταν πας να το ανοίξεις!

Συνεπώς, αν σας παρουσιαστεί ποτέ ξανά παρόμοιο πρόβλημα, κοιτάξτε μήπως ξεχάσατε κάποιο tag, αλλά κοιτάξτε μήπως σας χάλασε κάποιο και το παιχνίδι, αφού ένα απλό κενό συνήθως δεν το προσέχει κανείς μας. 😉

MasterMind33
Vote it up!