Αμερικανικό Εθνικό Ινστιτούτο Προτύπων(Αγγλικά) ΕΝΑμερικανός nεθνικές μικρόπρότυπα Εγώινστιτούτο, ANSI) είναι μια ένωση αμερικανικών βιομηχανικών και επιχειρηματικών ομίλων που αναπτύσσει πρότυπα εμπορίου και επικοινωνίας. Είναι μέλος του ISO και του IEC, εκπροσωπώντας εκεί τα συμφέροντα των ΗΠΑ.

Ιστορία

Το ANSI ιδρύθηκε αρχικά το 1918 όταν πέντε εταιρείες μηχανικών και τρεις κυβερνητικές υπηρεσίες ίδρυσαν την «Αμερικανική Επιτροπή Προτύπων Μηχανικής» ( AESC- Αγγλικά. Αμερικανική Επιτροπή Μηχανικών Προτύπων). Το 1928 η επιτροπή έγινε γνωστή ως American Standards Association. ΣΑΝ- Αγγλικά. Αμερικανική Ένωση Προτύπων). Το 1966, το ASA αναδιοργανώθηκε και έγινε το "Ινστιτούτο Προτύπων των Ηνωμένων Πολιτειών της Αμερικής" ( USASI- Αγγλικά. Ινστιτούτο Προτύπων Ηνωμένων Πολιτειών της Αμερικής). Η σημερινή ονομασία υιοθετήθηκε το 1969.

Μέχρι το 1918, υπήρχαν πέντε εταιρείες μηχανικών που συμμετείχαν στην ανάπτυξη τεχνικών προτύπων:

  • Αμερικανικό Ινστιτούτο Ηλεκτρολόγων Μηχανικών (AIEE, τώρα IEEE)
  • Αμερικανική Εταιρεία Μηχανολόγων Μηχανικών (ASME)
  • Αμερικανική Εταιρεία Πολιτικών Μηχανικών (ASCE)
  • Αμερικανικό Ινστιτούτο Μηχανικών Μεταλλείων (AIME, τώρα το Αμερικανικό Ινστιτούτο Μηχανικών Μεταλλείων, Μεταλλουργών και Πετρελαίου)
  • Αμερικανική Εταιρεία Δοκιμών και Υλικών (τώρα ASTM)

Το 1916, το Αμερικανικό Ινστιτούτο Ηλεκτρολόγων Μηχανικών (τώρα IEEE) ανέλαβε την πρωτοβουλία να ενώσει αυτούς τους οργανισμούς για να σχηματίσουν ένα ανεξάρτητο εθνικό σώμα για να συντονίσει την ανάπτυξη προτύπων, την εναρμόνιση και την έγκριση των εθνικών προτύπων. Οι παραπάνω πέντε οργανισμοί έγιναν τα κύρια μέλη της United Engineering Society (United Engineering Society - UES), και στη συνέχεια το Υπουργείο Πολέμου των ΗΠΑ προσκλήθηκε να συμμετάσχει σε αυτήν ως ιδρυτές, ΠΟΛΕΜΙΚΟ ΝΑΥΤΙΚΟ(συγχωνεύτηκε το 1947 για να γίνει το Υπουργείο Άμυνας των ΗΠΑ) και Εμπορίου.

Το 1931, ο οργανισμός (μετονομάστηκε ASA το 1928) έγινε μέρος της Εθνικής Επιτροπής των ΗΠΑ της Διεθνούς Ηλεκτροτεχνικής Επιτροπής (IEC) που ιδρύθηκε το 1904 για την ανάπτυξη προτύπων στην ηλεκτρική και ηλεκτρονική μηχανική

Μέλη

Τα μέλη του ANSI περιλαμβάνουν κυβερνητικές υπηρεσίες, οργανισμούς, ακαδημαϊκούς και διεθνείς οργανισμούς και ιδιώτες. Συνολικά, το Ινστιτούτο εκπροσωπεί τα συμφέροντα περισσότερων από 270.000 εταιρειών και οργανισμών και 30 εκατομμυρίων επαγγελματιών παγκοσμίως /

Δραστηριότητα

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

Το ANSI ορίζει επίσης συγκεκριμένα πρότυπα ως Αμερικανικά Εθνικά Πρότυπα ή ANS, όταν το Ινστιτούτο καθορίζει ότι τα πρότυπα αναπτύχθηκαν σε ένα περιβάλλον δίκαιο, προσβάσιμο και ανταποκρινόμενο στις ανάγκες των διαφόρων ενδιαφερομένων.

Διεθνής δραστηριότητα

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

Το Ινστιτούτο είναι ο επίσημος αντιπρόσωπος των ΗΠΑ σε δύο μεγάλους διεθνείς οργανισμούς τυποποίησης, τον Διεθνή Οργανισμό Τυποποίησης (ISO) ως ιδρυτικό μέλος και τη Διεθνή Ηλεκτροτεχνική Επιτροπή (IEC) μέσω της Εθνικής Επιτροπής των ΗΠΑ (USNC). Το ANSI εμπλέκεται σχεδόν σε όλα τεχνικό πρόγραμμα ISO και IEC και διοικεί πολλές βασικές επιτροπές και υποομάδες. Σε πολλές περιπτώσεις, τα πρότυπα των ΗΠΑ υποβάλλονται σε ISO και IEC μέσω ANSI ή USNC, όπου γίνονται αποδεκτά εν όλω ή εν μέρει ως Διεθνή Πρότυπα.

Η αποδοχή των προτύπων ISO και IEC ως πρότυπα των ΗΠΑ αυξήθηκε από 0,2% το 1986 σε 15,5% τον Μάιο του 2012.

Κατευθύνσεις τυποποίησης

Το Ινστιτούτο διαχειρίζεται εννέα ομάδες τυποποίησης:

  • Συνεταιρισμός Προτυποποίησης Εσωτερικής Άμυνας και Ασφάλειας ANSI (HDSSC)
  • Πίνακας προτύπων νανοτεχνολογίας ANSI (ANSI-NSP - Πίνακας προτύπων νανοτεχνολογίας ANSI)
  • Πίνακας προτύπων πρόληψης κλοπής ταυτότητας και διαχείρισης ταυτότητας (IDSP - Πίνακας προτύπων για την πρόληψη κλοπής ταυτότητας και διαχείριση ταυτότητας)
  • Συνεταιρισμός Συντονισμού Προτυποποίησης Ενεργειακής Απόδοσης ANSI (EESCC)
  • Συνεταιρισμός Συντονισμού Προτύπων Πυρηνικής Ενέργειας (NESCC-Συνεταιρισμός Συντονισμού Προτύπων Πυρηνικής Ενέργειας)
  • Πίνακας προτύπων ηλεκτρικών οχημάτων (EVSP)
  • Δίκτυο ANSI-NAM για τη ρύθμιση των χημικών προϊόντων
  • Πίνακας συντονισμού προτύπων βιοκαυσίμων ANSI
  • Πίνακας προτύπων τεχνολογίας πληροφοριών υγείας (HITSP)
  • Αμερικανικός Οργανισμός Πιστοποίησης Σωληνώσεων και Μηχανημάτων

Κάθε μία από τις ομάδες ασχολείται με τον προσδιορισμό, τον συντονισμό και την εναρμόνιση των εθελοντικών προτύπων που σχετίζονται με αυτούς τους τομείς. Το 2009, το ANSI και το (NIST) σχημάτισαν τη Συντονιστική Συνεργασία Προτύπων Πυρηνικής Ενέργειας (NESCC). Το NESCC είναι μια συλλογική πρωτοβουλία για τον εντοπισμό και την κάλυψη της τρέχουσας ανάγκης για πρότυπα στην πυρηνική βιομηχανία.

Πρότυπα

Από τα πρότυπα που υιοθετήθηκαν από το ινστιτούτο, είναι γνωστά τα ακόλουθα:

Σε αντίθεση με τη δημοφιλή εσφαλμένη αντίληψη, το ANSI δεν υιοθέτησε τα πρότυπα της κωδικοσελίδας των 8 bit, αν και συμμετείχε στην ανάπτυξη της κωδικοποίησης ISO-8859-1 και πιθανώς ορισμένων άλλων.

Σημειώσεις

  1. Σχετικά με το ANSI
  2. RFC
  3. ANSI: Ιστορική επισκόπηση (αόριστος) . ansi.org. Ανακτήθηκε στις 31 Οκτωβρίου 2016.
  4. Ιστορία του ANSI

Αξίζει να σημειωθεί ότι όλοι οι χαρακτηρισμοί κατηγορίας πίεσης ANSI έχουν μια συγκεκριμένη σημασία, δηλαδή την τιμή πίεσης, αλλά μόνο σε άλλες μονάδες από αυτές που έχουμε συνηθίσει. Όλοι οι αριθμοί μετά το ANSI υποδεικνύουν την τιμή της Ονομαστικής (Ονομαστικής) Πίεσης: ANSI 150, ANSI 300, ANSI 600, ANSI 900, ANSI 1500, ANSI 2500 και ANSI 4500. Για παράδειγμα, ANSI 150 σημαίνει ότι η ονομαστική πίεση είναι 150al. Στα αγγλικά, αυτό γράφεται ως Pound-force per Square Inch ή PSI για συντομία.

Κατά συνέπεια, με αυτόν τον τρόπο είναι δυνατή η ανεξάρτητη μετατροπή από λίβρες ανά τετραγωνική ίντσα σε ράβδο (100 kPa) ή MPa. Για έναν ανεξάρτητο υπολογισμό του ακριβούς, θα πρέπει να γνωρίζετε ότι 1 PSI \u003d 6894,76 Pa. Όλοι οι υπολογισμοί πίεσης ANSI σε bar και Pascal μπορούν να γίνουν όταν υπάρχει χρόνος και ανάγκη για ακριβή δεδομένα, την ίδια στιγμή, οι περισσότερες τυπικές τιμές κλάσης πίεσης ANSI έχουν ήδη τυπικές τιμές σε bar και MPa. Για απλοποίηση, έχουμε συντάξει έναν σύντομο πίνακα για αναφορά σας:

Πίνακας τάξεων πίεσης ANSI με μετατροπή σε Bar και MPa

Κατηγορία πίεσης ANSI

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

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


ΦΑΣΑΡΙΑείναι το γερμανικό πρότυπο (σημαίνει Deutsches Institut für Normung, δηλαδή που αναπτύχθηκε από το Γερμανικό Ινστιτούτο Τυποποίησης), το οποίο αναπτύσσεται αυστηρά στα πλαίσια των διατάξεων του Διεθνούς Οργανισμού Τυποποίησης - ISO (International Organization for Standardization).


ANSIείναι το πρότυπο που υιοθετείται στις Ηνωμένες Πολιτείες της Αμερικής. σημαίνει Αμερικανικό Εθνικό Ινστιτούτο Προτύπων, το οποίο είναι το πρότυπο του Αμερικανικού Εθνικού Ινστιτούτου Προτύπων.

Κατά συνέπεια, τα πρότυπα ANSI καθορίζονται από αυτό ακριβώς το ίδρυμα, και πολύ μακριά δεν είναι πάνταμεταξύ προτύπων ΦΑΣΑΡΙΑκαι ANSIμπορεί να εντοπίσει το ακριβές συμμόρφωσησε διάφορους τομείς.

Μετατροπή μονάδων πίεσης από ANSI σε DIN

Όλα είναι απλά εδώ: αν σύμφωνα με το πρότυπο ANSIαπέναντι από την πίεση είναι ο αριθμός 150 - αυτό σημαίνει ότι η ονομαστική (για την οποία έχει σχεδιαστεί η βαλβίδα) πίεση είναι 20 bar, 300 - 50 bar κ.λπ. Μέγιστη τιμή για Κατηγορία ANSI– 2500 θα ισούται με 420 bar σύμφωνα με το ευρωπαϊκό πρότυπο ΦΑΣΑΡΙΑ.


Χρησιμοποιώντας αυτόν τον πίνακα, όχι δύσκολομετατρέψτε τις τιμές πίεσης και αντίστροφα: από ΦΑΣΑΡΙΑσε ANSI, αν και οι μηχανικοί μας χρειάζονται πολύ περισσότερα λιγότερο συχνά.

Μετατροπή μονάδων μήκους από το αμερικανικό σύστημα στο ευρωπαϊκό (ρωσικό)

Ως γνωστόν, Αμερικανοίόλα μετρώνται σε ίντσες και πόδια, κι εμείς Ευρωπαίους- χιλιοστά, εκατοστά και μέτρα, δηλαδή, όπως και η συντριπτική πλειοψηφία των χωρών του κόσμου, ζούμε μετρικόςσύστημα μονάδων.


Πώς να μετατρέψετε ίντσες σε χιλιοστά; Στην πραγματικότητα, δεν υπάρχει τίποτα περίπλοκο σε αυτό, απλά θυμηθείτε ότι 1 ίντσα ισούται με 25,4 mm. Ωστόσο, συχνά το ψηφίο μετά την υποδιαστολή παραμέλησηκαι για τα καλά υποδεικνύουν ότι 1 ίντσα = 25 mm.

Έτσι, εάν, για παράδειγμα, η διατομή της εισόδου είναι 2 ίντσες σύμφωνα με το αμερικανικό σύστημα μέτρων, τότε, μετατρέποντας αυτήν την τιμή στο σύστημα μέτρων μας σύμφωνα με τον παραπάνω κανόνα, παίρνουμε 50 mm ή, ακριβέστερα, 51 mm (στρογγυλοποίηση 50,8 σύμφωνα με τους κανόνες) .

Μένει να προσθέσουμε ότι η διάμετρος σε τεχνικόςτα χαρακτηριστικά σημειώνονται με λατινικά γράμματα DNκαι συχνά ενδείκνυται σε ίντσες, και η πίεση συμβολίζεται με τα γράμματα ΠΝκαι ενδείκνυται συχνότερα σε μπαρ- σε κάθε περίπτωση, χρησιμοποιούμε ακριβώς αυτή τη σήμανση ως περισσότερο άνετος.

Και ο παρακάτω πίνακας θα βοηθήσειυπολογίζεις όχι μόνο ακριβήςτον αριθμό των χιλιοστών σε μία ίντσα (με ακρίβεια χιλιοστού του χιλιοστού), αλλά θα σας βοηθήσει επίσης να μάθετε πόσα χιλιοστά περιέχονται, για παράδειγμα, σε 2,5 ίντσες.

Για να το κάνουμε αυτό, βρίσκουμε τη στήλη 2 "" (2 ίντσες) και στα αριστερά αναζητούμε την τιμή 1/2. Σύνολο 2,5 ίντσες = 63,501 mm, το οποίο μπορεί να στρογγυλευτεί έως και 64 mm, και, για παράδειγμα, 6,25 ίντσες (δηλαδή, 6 και 1/4) = 158,753 mm ή 159 mm.


ίντσες "" έως χιλιοστά



Reg.ru: τομείς και φιλοξενία

Ο μεγαλύτερος καταχωρητής και πάροχος φιλοξενίας στη Ρωσία.

Πάνω από 2 εκατομμύρια ονόματα τομέα σε υπηρεσία.

Προώθηση, mail για domain, λύσεις για επιχειρήσεις.

Περισσότεροι από 700 χιλιάδες πελάτες σε όλο τον κόσμο έχουν ήδη κάνει την επιλογή τους.

*Μετακίνηση του ποντικιού για παύση της κύλισης.

Πίσω μπροστά

Κωδικοποιήσεις: χρήσιμες πληροφορίες και μια σύντομη αναδρομή

Αποφάσισα να γράψω αυτό το άρθρο ως μια μικρή κριτική για το θέμα των κωδικοποιήσεων.

Θα καταλάβουμε τι είναι γενικά η κωδικοποίηση και θα θίξουμε λίγο την ιστορία του πώς εμφανίστηκαν κατ' αρχήν.

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

Λοιπόν πάμε...

Τι είναι η κωδικοποίηση;

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

Εκείνοι. κάθε χαρακτήρας που εισάγουμε από το πληκτρολόγιο, ή βλέπουμε στην οθόνη της οθόνης, κωδικοποιείται από μια συγκεκριμένη ακολουθία bit (μηδενικά και μονάδες). 8 bit, όπως πιθανότατα γνωρίζετε, είναι ίσα με 1 byte πληροφοριών, αλλά περισσότερα για αυτό αργότερα.

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

Ο πρόγονος όλων των σύγχρονων κωδικοποιήσεων μπορεί να θεωρηθεί ASCII.

Αυτή η συντομογραφία σημαίνει Αμερικανικός τυποποιημένος κώδικας ανταλλαγής πληροφοριών(Αμερικανικός τυπικός πίνακας κωδικοποίησης για εκτυπώσιμους χαρακτήρες και ορισμένους ειδικούς κωδικούς).

το κωδικοποίηση ενός byte, που αρχικά περιείχε μόνο 128 χαρακτήρες: γράμματα του λατινικού αλφαβήτου, αραβικούς αριθμούς κ.λπ.


Αργότερα επεκτάθηκε (αρχικά δεν χρησιμοποιούσε και τα 8 bit), έτσι κατέστη δυνατή η χρήση όχι 128, αλλά 256 (2 έως 8) διαφορετικών χαρακτήρων που μπορούν να κωδικοποιηθούν σε ένα byte πληροφοριών.

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

Υπάρχουν πολλές επιλογές για εκτεταμένη κωδικοποίηση ASCII, λόγω του γεγονότος ότι υπάρχουν επίσης πολλές γλώσσες στον κόσμο. Νομίζω ότι πολλοί από εσάς έχετε ακούσει για μια τέτοια κωδικοποίηση όπως Το KOI8-R είναι επίσης μια εκτεταμένη κωδικοποίηση ASCII, σχεδιασμένο να λειτουργεί με Ρώσους χαρακτήρες.

Το επόμενο βήμα στην ανάπτυξη των κωδικοποιήσεων μπορεί να θεωρηθεί η εμφάνιση του λεγόμενου Κωδικοποιήσεις ANSI.

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

Ένα παράδειγμα τέτοιας κωδικοποίησης ANSI είναι το γνωστό Windows-1251. Εκτός από τα τυπογραφικά σύμβολα, αυτή η κωδικοποίηση περιλάμβανε επίσης γράμματα των αλφαβήτων γλωσσών κοντά στα ρωσικά (ουκρανικά, λευκορωσικά, σερβικά, μακεδονικά και βουλγαρικά).


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

Όπως καταλαβαίνετε, ένα σωρό κωδικοποιήσεις και η έλλειψη ενός ενιαίου προτύπου δεν οδήγησαν σε καλό, γεγονός που ήταν ο λόγος για συχνές συναντήσεις με τους λεγόμενους. krakozyabry- ένα αδιάβαστο σύνολο χαρακτήρων χωρίς νόημα.

Ο λόγος για την εμφάνισή τους είναι απλός - είναι προσπαθήστε να εμφανίσετε χαρακτήρες κωδικοποιημένους με έναν πίνακα κωδικοποίησης χρησιμοποιώντας έναν άλλο πίνακα κωδικοποίησης.

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

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

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

Με μια λέξη, ήταν απαραίτητο να δημιουργηθεί μια καθολική κωδικοποίηση που θα έλυνε το πρόβλημα των σφαλμάτων μια για πάντα.

Unicode - καθολική κωδικοποίηση κειμένου (UTF-32, UTF-16 και UTF-8)

Το ίδιο το πρότυπο προτάθηκε το 1991 από έναν μη κερδοσκοπικό οργανισμό "Κοινοπραξία Unicode"(Unicode Consortium, Unicode Inc.), και το πρώτο αποτέλεσμα της δουλειάς του ήταν η δημιουργία μιας κωδικοποίησης UTF-32.

Παρεμπιπτόντως, η συντομογραφία UTFσημαίνει Μορφή μετασχηματισμού Unicode(Μορφή μετατροπής Unicode).

Σε αυτήν την κωδικοποίηση, για να κωδικοποιήσει έναν χαρακτήρα, υποτίθεται ότι θα χρησιμοποιούσε όσους 32 bit, δηλ. 4 byte πληροφοριών. Εάν συγκρίνουμε αυτόν τον αριθμό με κωδικοποιήσεις ενός byte, τότε θα καταλήξουμε σε ένα απλό συμπέρασμα: για να κωδικοποιήσετε 1 χαρακτήρα σε αυτήν την καθολική κωδικοποίηση, χρειάζεστε 4 φορές περισσότερα κομμάτια, που «βαραίνει» το αρχείο 4 φορές.

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

Αντικαταστάθηκε από μια νέα εξέλιξη - UTF-16.

Όπως υποδηλώνει το όνομα, σε αυτήν την κωδικοποίηση κωδικοποιείται ένας χαρακτήρας όχι πλέον 32 bit, αλλά μόνο 16(δηλαδή 2 byte). Προφανώς, αυτό καθιστά οποιονδήποτε χαρακτήρα δύο φορές πιο «ελαφρύ» από ό,τι στο UTF-32, αλλά και δύο φορές πιο «βαρύ» από οποιονδήποτε χαρακτήρα που κωδικοποιείται χρησιμοποιώντας κωδικοποίηση ενός byte.

Ο αριθμός των διαθέσιμων χαρακτήρων για κωδικοποίηση στο UTF-16 είναι τουλάχιστον 2 με την ισχύ των 16, δηλ. 65536 χαρακτήρες. Όλα φαίνονται να είναι καλά, επιπλέον, η τελική τιμή του χώρου κώδικα στο UTF-16 έχει επεκταθεί σε περισσότερους από 1 εκατομμύριο χαρακτήρες.

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

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

UTF-8- αυτό είναι Κωδικοποίηση χαρακτήρων πολλών byte με μεταβλητό μήκος χαρακτήρων. Κοιτάζοντας το όνομα, μπορεί να σκεφτείτε, κατ' αναλογία με τα UTF-32 και UTF-16, ότι χρησιμοποιούνται 8 bit για την κωδικοποίηση ενός χαρακτήρα, αλλά αυτό δεν είναι έτσι. Πιο συγκεκριμένα, όχι ακριβώς έτσι.

Αυτό συμβαίνει επειδή το UTF-8 παρέχει την καλύτερη συμβατότητα με παλαιότερα συστήματα που χρησιμοποιούσαν χαρακτήρες 8 bit. Για την κωδικοποίηση ενός μεμονωμένου χαρακτήρα στο UTF-8 χρησιμοποιείται στην πραγματικότητα 1 έως 4 byte(υποθετικά δυνατό έως 6 byte).

Στο UTF-8, όλοι οι λατινικοί χαρακτήρες κωδικοποιούνται με 8 bit, όπως και στην κωδικοποίηση ASCII.. Με άλλα λόγια, το βασικό μέρος της κωδικοποίησης ASCII (128 χαρακτήρες) έχει μεταφερθεί στο UTF-8, το οποίο σας επιτρέπει να "ξοδέψετε" μόνο 1 byte για την αναπαράστασή τους, διατηρώντας παράλληλα την καθολικότητα της κωδικοποίησης, για την οποία ξεκίνησαν τα πάντα.

Έτσι, εάν οι πρώτοι 128 χαρακτήρες κωδικοποιούνται με 1 byte, τότε όλοι οι άλλοι χαρακτήρες είναι ήδη κωδικοποιημένοι με 2 byte ή περισσότερα. Συγκεκριμένα, κάθε κυριλλικός χαρακτήρας κωδικοποιείται με ακριβώς 2 byte.

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

Με BOM ή χωρίς BOM;

Εάν έχετε συνεργαστεί με συντάκτες κειμένου(από τους επεξεργαστές κώδικα), για παράδειγμα Σημειωματάριο ++, phpDesigner, γρήγορη PHPκ.λπ., τότε μάλλον έδωσαν προσοχή στο γεγονός ότι όταν ορίζετε την κωδικοποίηση στην οποία θα δημιουργηθεί η σελίδα, μπορείτε συνήθως να επιλέξετε 3 επιλογές:

ANSI
-UTF-8
- UTF-8 χωρίς BOM


Θα πω αμέσως ότι αξίζει πάντα να επιλέξετε τελευταία επιλογή - UTF-8 χωρίς BOM.

Τι είναι λοιπόν το BOM και γιατί δεν το χρειαζόμαστε;

BOMσημαίνει Σήμα παραγγελίας byte. Αυτός είναι ένας ειδικός χαρακτήρας Unicode που χρησιμοποιείται για να υποδείξει το endianness. αρχείο κειμένου. Σύμφωνα με τις προδιαγραφές, η χρήση του είναι προαιρετική, αλλά εάν BOMχρησιμοποιείται, πρέπει να οριστεί στην αρχή του αρχείου κειμένου.

Δεν θα μπούμε σε λεπτομέρειες της εργασίας BOM. Για εμάς το βασικό συμπέρασμα είναι το εξής: Η χρήση αυτού του χαρακτήρα υπηρεσίας μαζί με το UTF-8 εμποδίζει τα προγράμματα να διαβάζουν κανονικά την κωδικοποίηση, με αποτέλεσμα σφάλματα σεναρίου.

Το ANSI είναι ένα πρότυπο εμφάνισης χαρακτήρων που αναπτύχθηκε από το Αμερικανικό Εθνικό Ινστιτούτο Προτύπων (κωδικός 1251). Το πρότυπο ANSI χρησιμοποιεί μόνο ένα byte για να αναπαραστήσει κάθε χαρακτήρα και επομένως περιορίζεται σε μέγιστο αριθμό 256 χαρακτήρων, συμπεριλαμβανομένων των σημείων στίξης. Οι κωδικοί 32 έως 126 ακολουθούν το πρότυπο ASCII. Το ASCII (κωδικός 688) χρησιμοποιήθηκε στο DOS, το ANSI χρησιμοποιείται στα Windows.

Βιβλιογραφία

    Arkhangelsky A.Ya. Προγραμματισμός σε C++ Builder6. Εκδ. BINOM, 2004.

    Arkhangelsky A.Ya. C++Builder6. Εγχειρίδιο αναφοράς. Μόσχα, Εκδ. BINOM, 2004.

    Kimmel P. Borland C++5 "BHV-St. Petersburg, 2001.

    Klimova L.M. C++ Πρακτικός προγραμματισμός. Λύση τυπικών εργασιών. «KUDITS-IMAGE», Μ.2001.

    Kultin N. С/С++ σε εργασίες και παραδείγματα. Αγία Πετρούπολη "BHV-Petersburg", 2003.

    Pavlovskaya T.A. C/C++ Προγραμματισμός σε γλώσσα υψηλού επιπέδου. Peter, Μόσχα-Αγία Πετρούπολη-… 2005

    Pavlovskaya T.A., Shchupak Yu.A. C++. Αντικειμενοστραφής προγραμματισμός. ΕΡΓΑΣΤΗΡΙ. SPb., Peter, 2005.

    Podbelsky V.V. Γλώσσα C++ Χρηματοοικονομικά και στατιστικά, Μόσχα, 2003.

    Polyakov A.Yu., Brusentsev V.A. Μέθοδοι και αλγόριθμοι γραφικά υπολογιστήσε παραδείγματα στο Visual C++. SPb BHI-Petersburg, 2003

    Savitch W. Γλώσσα C++ μάθημα αντικειμενοστρεφούς προγραμματισμού. Εκδοτικός Οίκος Williams. Μόσχα-Αγία Πετρούπολη-Κίεβο, 2001

    Wellin S. Πώς να μην προγραμματίσετε σε C++. "Πέτρος". Μόσχα-Αγία Πετρούπολη-Νίζνι Νόβγκοροντ-Βορόνεζ-Νοβοσιμπίρσκ-Ροστόφ-ον-Ντον-Γεκατερίνμπουργκ-Σαμάρα-Κίεβο-Χάρκοβο-Μινσκ, 2004.

    Shieldt G. Πλήρης αναφοράσε C++. Εκδ. Σπίτι "Williams" Μόσχα-Αγία Πετρούπολη-Κίεβο, 2003.

    Schildt G. Αυτοδιδάσκων C/C++. Αγία Πετρούπολη, BHV-Petersburg, 2004.

    Schildt G. Programmer's Guide to C/C++ Ed. Σπίτι "Williams" Μόσχα-Αγία Πετρούπολη-Κίεβο, 2003.

    Shimanovich.L. С/С++ σε παραδείγματα και εργασίες. Μινσκ, Νέα γνώση, 2004.

    Stern V. Fundamentals of C++. Μέθοδοι μηχανικής λογισμικού. Εκδ. Λόρι.

Γιατί εμφανίζονται σκουπίδια αντί για ρωσικά γράμματα στην εφαρμογή της κονσόλας;

και σωστά! Το κείμενο του προγράμματος που πληκτρολογήσατε στον εγγενή επεξεργαστή σας οπτικό στούντιο, χρησιμοποιώντας την κωδικοσελίδα 1251 και η έξοδος κειμένου στην εφαρμογή της κονσόλας χρησιμοποιεί την κωδικοσελίδα 866. Τι να κάνετε με αυτό το αίσχος; Όπως γνωρίζετε, από οποιοδήποτε αδιέξοδο υπάρχουν τουλάχιστον 3 έξοδοι. Ας τα εξετάσουμε με τη σειρά.

    1. Έξοδος 1

Πληκτρολογήστε το κείμενο του προγράμματος στο πρόγραμμα επεξεργασίας οποιουδήποτε διαχειριστή αρχείων κονσόλας.

Τι γίνεται όμως με την επισήμανση σύνταξης, την εμφάνιση βοήθειας στην επιλεγμένη λειτουργία χρησιμοποιώντας το F1 και άλλα μικρά γούρια που φωτίζουν τη ζοφερή ζωή ενός απλού προγραμματιστή; Όχι, δεν είναι επιλογή για εμάς.

    1. Έξοδος 2

Εάν ξεκινήσατε να γράφετε ένα πρόγραμμα κονσόλας από την αρχή, μπορεί να σας ταιριάζει. Ας ξαναγράψουμε το μικρό μας αριστούργημα ως εξής:

#include "stdafx.h"

#include "windows.h"

int main(int argc, char* argv)

char s="Γεια σε όλους!";

printf("%s\n", s);

Η λέξη-κλειδί εδώ είναι CharToOem - αυτή η συνάρτηση θα μετατρέψει τη συμβολοσειρά μας στην επιθυμητή κωδικοσελίδα. Με την έξοδο του προγράμματός μας, όλα είναι καλά τώρα.

Αλλά τίθεται το επόμενο ερώτημα - τι να κάνετε εάν πρέπει να μεταγλωττίσετε ξανά το παλιό σας πρόγραμμα DOS 100.000 γραμμών γραμμένο σε Borland C++ 3.1 σε μια εφαρμογή κονσόλας των Windows, στην οποία μια τέτοια κατάσταση εμφανίζεται σε κάθε δεύτερη γραμμή. Αλλά πρέπει ακόμα να το προσαρμόσετε στον μεταγλωττιστή MS και θέλετε επίσης να βελτιστοποιήσετε μερικά κομμάτια κώδικα ...

Εδώ μάλλον έχει νόημα να χρησιμοποιήσουμε την κίνηση του ιππότη, με την έννοια