capoelo Δημοσ. 14 Ιουλίου 2012 Δημοσ. 14 Ιουλίου 2012 Απ'ότι έχω διαβάσει και ξέρω(ή τουλάχιστον έτσι νομίζω),τα html numbers χρησιμοποιούνται για προγραμματισμό στο διαδίκτυο(html;).Η ερώτηση μου είναι η εξής:μπορώ να εμφανίσω το html number ενός χαρακτήρα στη C;Και πως το κάνω;
παπι Δημοσ. 14 Ιουλίου 2012 Δημοσ. 14 Ιουλίου 2012 Αν μου τα ειπε σωστα ο googlης για το τι ειναι οι html numbers τοτε ναι, ειναι ευκολο. Πχ το ! ειναι ! το ! στο πινακα Ascii ειναι το 33(dec) το '!' στη c ειναι και αυτο το 33 πχ αν κανεις printf ("%d", '!') θα σου επιστρεψει το 33 αρα μπορεις να κανεις κατι τετοιο με την itoa >const char* toHtml(char ch) { static char buf[10] = ""; if(!isalnum(ch)) return itoa(ch,buf + 2,10) - 2; buf[3] = ch; return buf + 2; } Βασικα εκανα ενα λαθος ετσι ειναι οκ >static const char* toHtml(char ch) { static char buf[10] = ""; if(!isalnum(ch)) return itoa(ch,buf + 2,10) - 2; buf[2] = ch; buf[3] = 0; return buf + 2; }
defacer Δημοσ. 15 Ιουλίου 2012 Δημοσ. 15 Ιουλίου 2012 Αν κατάλαβε καλά και το παπί και γώ τότε αναφέρεσαι σε HTML character references. Αυτό σημαίνει οι αριθμοί στους οποίους αναφέρεσαι δεν είναι "HTML numbers", είναι Unicode code points: Numeric references always refer to Unicode code points, regardless of the page's encoding. Θα έβαζα link για τη σχετική σελίδα στο unicode.org αλλά αυτή τη στιγμή είναι down. Τέλος πάντων για να εμφανίσεις το code point ενός χαρακτήρα στη C, (απλουστεύω λίγο στη συνέχεια αλλά τεχνικά δεν είναι σωστό αυτό που θα πω) θέλεις προφανώς ένα είδος πίνακα που αντιστοιχίζει χαρακτήρες (glyphs) σε code points. Η πληροφορία που σου χρειάζεται εν γένει υπάρχει εδώ αν και φυσικά στην πράξη θα προτιμήσεις να την πάρεις από αλλού σε μορφή έτοιμη για κατανάλωση από πρόγραμμα. Έχε υπόψη πως πάντα όπου βλέπεις κάτι του στυλ "χαρακτήρας" U+xxxx αυτό σημαίνει ότι ο χαρακτήρας αντιστοιχεί στο code point xxxx (δεκαεξαδικό). Αυτό μπορείς π.χ. να το δεις ακόμα και αν τρέξεις "charmap" στα Windows. Στην πολύ ειδική περίπτωση που μιλάμε για τους χαρακτήρες που περιλαμβάνονται στο ASCII (δηλαδή αυτούς για τους οποίους στη C ισχύει ch <= 127) τότε το unicode code point είναι το ίδιο με τον ASCII code. @παπί: Βάσει των παραπάνω ο κώδικας του παραδείγματος είναι γενικά λάθος για ch >= 128 (και φυσικά το ζουμί είναι στο τι γίνεται όταν μιλάμε για code points εκτός ASCII όπου θα πρέπει να μπλεχτεί και το encoding στην κατάσταση).
παπι Δημοσ. 16 Ιουλίου 2012 Δημοσ. 16 Ιουλίου 2012 Aμφιβαλω αν αναφερεται σε unicode. Βλεπεις... C.. (ιιιιιιιιιιιιιιιιιιιου )
defacer Δημοσ. 16 Ιουλίου 2012 Δημοσ. 16 Ιουλίου 2012 Aμφιβαλω αν αναφερεται σε unicode. Βλεπεις... C.. (ιιιιιιιιιιιιιιιιιιιου ) Τα HTML character references ορίζονται με βάση το Unicode, αυτό δεν είναι θέμα προς συζήτηση. Οπότε θεωρώντας ότι μιλάμε για το σωστό πράγμα (που δεν είναι και 100% σίγουρο) δεν έχει σημασία ούτε με τι γλώσσα έχουμε να κάνουμε ούτε τίποτα άλλο. Και φυσικά υπάρχουν unicode libraries και για C (ICU).
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα