ΥπολογιστέςΠρογραμματισμός

UTF-8 - κωδικοποίηση χαρακτήρων

Unicode υποστηρίζει σχεδόν όλα τα υπάρχοντα σύνολα χαρακτήρων. Η καλύτερη μορφή κωδικοποιεί Unicode σύνολο χαρακτήρων είναι κωδικοποίηση UTF-8. Υποστηρίζει συμβατότητα με ASCII, η αντίσταση στην παραμόρφωση των δεδομένων, την αποτελεσματικότητα και την ευκολία επεξεργασίας. Αλλά πρώτα πράγματα πρώτα.

κωδικοποίησης μορφή

Οι υπολογιστές λειτουργούν όχι μόνο ως αριθμούς αφηρημένα μαθηματικά αντικείμενα, καθώς και τους συνδυασμούς των μονάδων αποθήκευσης και διαχείρισης δεδομένων σταθερού μεγέθους - byte και λέξεις 32-bit. τυπική κωδικοποίηση πρέπει να το λάβει αυτό υπόψη κατά τον καθορισμό του τρόπου να παρουσιάσει τον αριθμό των χαρακτήρων.

Σε συστήματα ηλεκτρονικών υπολογιστών, οι ακέραιοι αποθηκεύεται στα κύτταρα μνήμης 8 bits (1 byte), 16 ή 32 bits. Κάθε μορφή ορίζει μία κωδικοποιεί Unicode, η οποία αλληλουχία των κυττάρων μνήμης είναι ένας ακέραιος που αντιστοιχεί σε ένα συγκεκριμένο σύμβολο. Στο πρότυπο υπάρχουν τρεις διαφορετικές μορφές κωδικοποίησης Unicode χαρακτήρες 8, 16 και 32-bit μπλοκ. Κατά συνέπεια, είναι γνωστοί ως UTF-8, UTF-16 και UTF-32. Όνομα UTF σημαίνει Unicode Transformation Format. Κάθε μία από τις τρεις μορφές μέσων που κωδικοποιούν είναι ίση εκπροσώπηση χαρακτήρας Unicode έχει πλεονεκτήματα σε διάφορες εφαρμογές.

Κρυπτογράφηση δεδομένων μπορεί να χρησιμοποιηθεί για να εκπροσωπεί όλους τους χαρακτήρες στο πρότυπο Unicode. Έτσι, είναι πλήρως συμβατή με λύσεις για διάφορους λόγους, με τη χρήση διαφορετικών μορφών κωδικοποίησης. Κάθε κωδικοποίηση μπορεί αναμφίβολα να μετατραπούν σε οποιοδήποτε από τα άλλα δύο χωρίς απώλεια δεδομένων.

αρχή nenalozheniya

Κάθε ένα από τα έντυπα κωδικοποίηση Unicode αναπτύχθηκε εν όψει της μη μερική επικάλυψη. Για παράδειγμα, τα Windows-932 σχηματίζει τους χαρακτήρες ενός ή δύο bytes του κώδικα. Το μήκος της αλληλουχίας εξαρτάται από το πρώτο byte, έτσι ώστε οι κορυφαίες τιμές byte στη σειρά των δύο-byte και ενιαίο ασυνεχές byte. Ωστόσο, η αξία ενός μόνο byte και οπίσθια αλληλουχία byte μπορεί να συμπίπτουν. Αυτό σημαίνει για παράδειγμα ότι η αναζήτηση χαρακτήρας D (κωδικός 44) μπορεί βρίσκουν λάθος που εισέρχονται στο δεύτερο τμήμα της αλληλουχίας των δύο-byte χαρακτήρα «D» (κωδικός 84 44). Για να μάθετε ποια σειρά είναι σωστή, το πρόγραμμα θα πρέπει να λαμβάνει υπόψη τα προηγούμενα bytes.

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

μετατροπής μορφής Unicode αποφεύγει αυτό το πρόβλημα, διότι η αξία του κορυφαίου, σύροντας, και μια ενιαία μονάδα αποθήκευσης δεν είναι οι ίδιες πληροφορίες. Αυτό εξασφαλίζει ότι όλα Unicode για την αναζήτηση και τη σύγκριση, ποτέ δεν δίνει λανθασμένα αποτελέσματα λόγω της σύμπτωσης των διαφόρων τμημάτων του κώδικα χαρακτήρα. Το γεγονός ότι αυτές οι μορφές κωδικοποίησης τηρεί την αρχή nenalozheniya, τους διακρίνει από άλλες κωδικοποιήσεις της Ανατολικής Ασίας multi-byte.

Μια άλλη πτυχή nonintersection κωδικοποιήσεις Unicode είναι ότι κάθε χαρακτήρας έχει σαφή σύνορα. Αυτό εξαλείφει την ανάγκη να σαρώσετε ένα αόριστο αριθμό των προηγούμενων συμβόλων. Αυτό το χαρακτηριστικό είναι μερικές φορές ονομάζεται αυτο-χρονισμό κωδικοποίηση. Παραμόρφωση των μονάδων κώδικα θα εισαγάγει μια παραμόρφωση ενός μόνο χαρακτήρα, και οι γύρω χαρακτήρες είναι ακόμα άθικτο. Στην μετατροπή μορφή 8-bit, αν ο δείκτης να δείχνει το byte, ξεκινώντας με 10xxxxxx (σε δυαδικό κώδικα) για να βρείτε η έναρξη του συμβόλου απαιτείται για μία έως τρεις αντίστροφη μεταβάσεις.

συνοχή

Unicode Consortium υποστηρίζει πλήρως όλες τις 3 μορφές κωδικοποιήσεις. Είναι σημαντικό να μην αντιταχθεί στην UTF-8 και Unicode, όπως όλες τις μορφές μετατροπής - εξίσου έγκυρες μορφές εφαρμογής του προτύπου κωδικοποίησης χαρακτήρων Unicode.

Byte-προσανατολισμός

Για να αντιπροσωπεύουν UTF-32 χαρακτήρες, θα χρειαστεί μια μονάδα κωδικό 32-bit, η οποία συμπίπτει με τον κωδικό Unicode. UTF-16 - μία σε δύο μονάδες 16-bit. Μια UTF-8 χρησιμοποιεί έως 4 bytes.

Κωδικοποίηση UTF-8 έχει σχεδιαστεί ώστε να είναι συμβατή με συστήματα ASCII που βασίζονται byte-προσανατολισμένη. Το μεγαλύτερο μέρος του υπάρχοντος λογισμικού και την πρακτική της τεχνολογίας των πληροφοριών για μεγάλο χρονικό διάστημα στηρίχθηκε στην αναπαράσταση των χαρακτήρων σε μια ακολουθία από bytes. Πολλαπλά πρωτόκολλα εξαρτάται από τη σταθερότητα του ASCII κωδικοποίηση και χρησιμοποιεί είτε αποφεύγει τους ειδικούς χαρακτήρες ελέγχου. Ένας απλός τρόπος για να προσαρμοστούν στις καταστάσεις Unicode μπορεί, με τη χρήση 8-bit κωδικοποίηση για την αναπαράσταση Unicode χαρακτήρες, οποιουδήποτε ισοδύναμου χαρακτήρα ASCII ή ένα χαρακτήρα ελέγχου. Για το σκοπό αυτό, και είναι κωδικοποίηση UTF-8.

μεταβλητού μήκους

UTF-8 - κωδικοποίησης μεταβλητού μήκους, που αποτελούνται από μονάδες αποθήκευσης 8-bit, οι άνω bit, τα οποία δείχνουν σε ποιο τμήμα της αλληλουχίας της κάθε επιμέρους byte ανήκει. Ένα εύρος τιμών που κατανέμεται στον πρώτο στοιχείο της ακολουθίας κώδικα, μια άλλη - για την επόμενη. Αυτό παρέχει ασυναρτησία κωδικοποίηση.

ASCII

Κωδικοποίηση UTF-8 υποστηρίζεται πλήρως κωδικοί ASCII (0x00-0x7F). Αυτό σημαίνει ότι οι χαρακτήρες Unicode U + 0000-U + 007F μετατρέπονται σε μόνο byte 0x00-0x7F UTF-8 και έτσι να γίνει δυσδιάκριτες από ASCII. Επιπλέον, για να αποφευχθεί η ασάφεια, η αξία 0x00-0x7F δεν χρησιμοποιείται πια σε μια ενιαία παράσταση byte των χαρακτήρων Unicode. Για να κωδικοποιούν σύμβολα neideograficheskih πλην ASCII, χρησιμοποιώντας μια ακολουθία των δύο bytes. Σύμβολα κυμαίνονται U + 0800-U + FFFF εκπροσωπούνται από τρία bytes, και πρόσθετοι κωδικοί με περισσότερους από U + FFFF απαιτούν τέσσερα byte.

πεδίο εφαρμογής

Κωδικοποίηση UTF-8 συνήθως δίνεται προτίμηση στο πρωτόκολλο HTML, και τα παρόμοια.

XML έχει γίνει το πρώτο πρότυπο με την πλήρη υποστήριξη UTF-8 κωδικοποίηση. Οργανισμούς τυποποίησης να προτείνουμε επίσης. πρόβλημα Υποστήριξη στην διεύθυνση URL που είναι διαφορετική από τις ASCII-χαρακτήρες, λύθηκε όταν το W3C κοινοπραξία και IETF ομάδα μηχανικών κατέληξαν σε συμφωνία σχετικά με την κωδικοποίηση όλων των διευθύνσεων URL αποκλειστικά σε UTF-8.

Συμβατότητα με ASCII διευκολύνει τη μετάβαση στο νέο λογισμικό. Με UTF-8 λειτουργεί πιο επεξεργαστές κειμένου, συμπεριλαμβανομένων των jedit, Emacs, BBEdit, Eclipse, και το "Σημειωματάριο" το λειτουργικό σύστημα των Windows. Καμία άλλη μορφή της κωδικοποίησης Unicode δεν μπορεί να επαίρεται για μια τέτοια στήριξη του εργαλείου.

κωδικοποίησης πλεονέκτημα είναι ότι αποτελείται από μια ακολουθία από bytes. Με UTF-8 εγχόρδων είναι εύκολο να εργαστούν σε C και άλλες γλώσσες προγραμματισμού. Αυτή είναι η μόνη μορφή κωδικοποίησης, η σειρά δεν απαιτεί ετικέτες bytes BOM ή δήλωση κωδικοποίηση σε XML.

αυτο-συγχρονισμό

Σε ένα περιβάλλον που χρησιμοποιεί σύμβολα 8-bit της επεξεργασίας σε σύγκριση με άλλα σύνολα χαρακτήρων πολλαπλών byte, UTF-8 έχει τα ακόλουθα πλεονεκτήματα:

  • Η πρώτη ακολουθία κώδικα byte περιέχει πληροφορίες σχετικά με το μήκος του. Αυτό αυξάνει την αποτελεσματικότητα της άμεσης αναζήτησης.
  • Απλοποιημένη βρίσκοντας την αρχή του συμβόλου ως αρχικών byte περιορίζεται σε ένα σταθερό εύρος τιμών.
  • Δεν αξίες διασταύρωση byte.

Συγκρίνετε τα οφέλη

Κωδικοποίηση UTF-8 είναι συμπαγής. Αλλά όταν χρησιμοποιείται για την κωδικοποίηση της Ασίας χαρακτήρες Ανατολή (Κινέζικα, Ιαπωνικά, Κορεατικά, κινεζική γραφή χρησιμοποιώντας σημεία) χρησιμοποιούνται ακολουθίες 3-byte. Επίσης κωδικοποίηση UTF-8 είναι κατώτερη από άλλες μορφές της κωδικοποίησης ταχύτητας επεξεργασίας. Ένα δυαδικό γραμμές διαλογής παράγει το ίδιο αποτέλεσμα με τη δυαδική ταξινόμηση Unicode.

Το καθεστώς κωδικοποίηση χαρακτήρων

Το καθεστώς κωδικοποίηση χαρακτήρων περιλαμβάνει σύμβολα που κωδικοποιεί μορφή και μέθοδο για μόνο byte μονάδες κώδικα τοποθεσίας. Για τον προσδιορισμό της σχήμα κωδικοποίησης Unicode πρότυπο παρέχει τη χρήση ενός αρχικού σήματος σειρά byte (ΒΟΜ, Byte σημαδιού σειράς).

Όταν το ΒΟΜ σε UTF-8 tag χαρακτηριστικό περιορίζεται μόνο σε σχέση με τη χρήση των μορφών κωδικοποίησης. Προβλήματα κατά τον καθορισμό της endian UTF-8 έχουν, όπως το μέγεθος της μονάδας που κωδικοποιεί του είναι ένα byte. Χρησιμοποιώντας το BOM για αυτή τη μορφή της κωδικοποίησης δεν απαιτείται ούτε συνιστάται. ΒΟΜ μπορεί να συμβεί στο κείμενο που πρόκειται να μετατραπεί από άλλες κωδικοποιήσεις χρησιμοποιεί το σήμα προκειμένου byte ή υπογραφή για κωδικοποίηση UTF-8. Είναι μια ακολουθία 3 bytes EF ΒΒ 16 16 BF 16.

Πώς να ρυθμίσετε την κωδικοποίηση UTF-8

Η κωδικοποίηση HTML UTF-8 είναι εγκατεστημένο με τον ακόλουθο κώδικα:

κεφάλι

Meta http-equiv = "Content-Type" content = "text / html? Charset = utf-8" ˃

Στην PHP κωδικοποίηση UTF-8 ρυθμίζεται χρησιμοποιώντας τη συνάρτηση header () στην αρχή του αρχείου μετά τον καθορισμό του σφάλματος αξία στάθμη εξόδου:

˂; Php

error_reporting (-1)?

header ( «Content-Type: text / html? charset = utf-8«)?

Για να συνδεθείτε σε μια βάση δεδομένων MySQL UTF-8 κωδικοποίηση έχει οριστεί:

˂; Php

mysql_set_charset ( 'utf8')?

Η κωδικοποίηση CSS-αρχείο είναι UTF-8 χαρακτήρων καθορίζεται ως εξής:

@charset "utf-8"?

Όταν αποθηκεύετε τα αρχεία όλων των τύπων επιλέξετε κωδικοποίηση UTF-8 χωρίς BOM, διαφορετικά ο ιστότοπος δεν θα λειτουργήσει. Για να το κάνετε αυτό σε DreamWeave πρέπει να επιλέξετε το στοιχείο μενού «Τροποποιήσεις - Ακίνητα Σελίδα - Τίτλος / Κωδικοποίηση» για να αλλάξετε την κωδικοποίηση σε UTF-8. Ακολουθούμενη από την επαναφόρτωση της σελίδας, αφαιρέστε το σημάδι επιλογής από το «Connect Unicode υπογραφή (BOM)» και να εφαρμόσετε τις αλλαγές. Εάν οποιοδήποτε κείμενο σε μια σελίδα ή σε μια βάση δεδομένων εισήχθη μια άλλη μορφή της κωδικοποίησης, είναι απαραίτητο να εισέλθει εκ νέου ή εκ νέου κωδικοποίηση. Όταν εργάζεστε με κανονικές εκφράσεις, φροντίστε να χρησιμοποιήσετε τον τροποποιητή u.

Μπορείτε επίσης να αποθηκεύσετε το αρχείο σε κωδικοποίηση UTF-8 στο «Σημειωματάριο» των Windows. Μετά την επιλογή του μενού «Αρχείο - Αποθήκευση ως ...» για να εγκαταστήσετε το απαραίτητο έντυπο της κωδικοποίησης και να αποθηκεύσετε το αρχείο σε UTF-8.

Σε ένα πρόγραμμα επεξεργασίας κειμένου Notepad ++, αν ορίσετε εκτός από UTF-8, μέσω του μενού «Μετατροπή σε UTF-8 χωρίς BOM» αλλαγή του χαρακτήρα και να αποθηκεύσετε σε UTF-8.

δεν υπάρχει εναλλακτική λύση

Στο πλαίσιο της παγκοσμιοποίησης, όπου διαγράφονται πολιτικά και γλωσσικά όρια, τα σύνολα χαρακτήρων που έχουν τοπικά χαρακτηριστικά, είναι μικρή χρησιμότητα. Unicode είναι ένα ενιαίο σύνολο χαρακτήρων που υποστηρίζει όλες τις τοπικές προσαρμογές. Μια UTF-8 - ένα παράδειγμα της ορθής εφαρμογής του Unicode, η οποία είναι:

  • Υποστηρίζει ένα ευρύ φάσμα εργαλείων, συμπεριλαμβανομένης της συμβατότητας με ASCII κωδικοποίηση?
  • Είναι ανθεκτικό σε δεδομένα παραμόρφωση?
  • απλό και αποτελεσματικό στη θεραπεία?
  • είναι ανεξάρτητη πλατφόρμα.

Με την έλευση του UTF-8 συζήτηση για το ποια μορφή κωδικοποίησης ή χαρακτήρα σύνολο είναι καλύτερο, αυτό γίνεται χωρίς νόημα.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 el.birmiss.com. Theme powered by WordPress.