(text strings = συμβολοσειρές)
Το κομμάτι που παράθεσες ήταν σημείωση
Σημείωση για έμπειρους προγραμματιστές
Το unicode "ας πούμε" πως είναι
σύνολο με χαρακτήρες από όλες τις γλώσσες, π.χ.
- Κώδικας: Επιλογή όλων
Յασασδժջ٣ㄆㄘㄩڨڪწჭⴠςεζਫשׁມຣߓSDFSDFsdfdf߆ପବଭφγφδγρρdsfsd
Το ascii περιέχει μόνο μερικούς χαρακτήρες, που χρησιμοποιούνται
κυρίως στα αγγλικά:
http://el.wikipedia.org/wiki/ASCIIΣτο ascii υπάρχουν:
- Εκτυπώσιμοι χαρακτήρες (φαίνονται και μπορούν να εκτυπωθούν με print())
- χαρακτήρες ελέγχου (δε φαίνονται, δε μπορούν να εκτυπωθούν με print())
Το Unicode
περιέχει και τους χαρακτήρες του ASCII, οπόταν λέμε ότι
υπερσύνολο του ASCII.
Τώρα, σε κάποιες γλώσσες προγραμματισμού προφανώς (δεν είμαι σίγουρος) υπάρχει τρόπος να φτιάξεις ένα text string με μόνο ASCII ("αγγλικούς") χαρακτήρες, παρ' όλο που έδωσες κι άλλους.
Στην python μπορείς να "μετατρέψεις" Unicode/UTF-8 σε ASCII-only. Παράδειγμα:
python2.6- Κώδικας: Επιλογή όλων
$ python
Python 2.6.2 (release26-maint, Apr 19 2009, 01:58:18)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> title = u"Klüft skräms inför på fédéral électoral große"
>>> import unicodedata
>>> unicodedata.normalize('NFKD', title).encode('ascii','ignore')
'Kluft skrams infor pa federal electoral groe'
Δεν ισχύει για όλες τις γλώσσες, ούτε για όλους τους χαρακτήρες:
- Κώδικας: Επιλογή όλων
$ python
Python 2.6.2 (release26-maint, Apr 19 2009, 01:58:18)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> title = u"Η Μαρία πήγε στον μπακάλη να αγοράσει γάλα"
>>> import unicodedata
>>> unicodedata.normalize('NFKD', title).encode('ascii','ignore')
' '
>>> unicodedata.normalize('NFC', title).encode('ascii','ignore')
' '
>>> unicodedata.normalize('NFKC', title).encode('ascii','ignore')
' '
Σημείωση: Το "u" μπροστά στο
u"Klüft skräms inför på fédéral électoral große" λέει στην python να φυλάξει το text string ως Unicode.
python3.0- Κώδικας: Επιλογή όλων
$ python3
Python 3.0.1+ (r301:69556, Apr 15 2009, 17:25:52)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import unicodedata
>>> title = "Klüft skräms inför på fédéral électoral große"
>>> unicodedata.normalize('NFKD', title).encode('ascii','ignore')
b'Kluft skrams infor pa federal electoral groe'
Σημείωση: Προσέξτε πως στην python3
δε χρειάζεται το "u" μπροστά από το "Klüft skräms inför på fédéral électoral große", μιας και
πιο πάνω ανέφερα ότι τα text strings φυλάγονται εξ' αρχής ως unicode, αλλιώς βγάζει "SyntaxError" (Συντακτικό λάθος):
- Κώδικας: Επιλογή όλων
>>> title = u"Klüft skräms inför på fédéral électoral große"
File "<stdin>", line 1
title = u"Klüft skräms inför på fédéral électoral große"
^
SyntaxError: invalid syntax