უნიკოდის კოდირება 2. უნიკოდის შექმნისა და განვითარების წინაპირობები

გამარჯობა ბლოგის საიტის ძვირფასო მკითხველებო. დღეს ჩვენ ვისაუბრებთ იმაზე, თუ საიდან მოდის krakozyabrs საიტზე და პროგრამებში, რა ტექსტური კოდირება არსებობს და რომელი უნდა იქნას გამოყენებული. მოდით უფრო ახლოს მივხედოთ მათი განვითარების ისტორიას, დაწყებული ძირითადი ASCII-დან, ასევე მისი გაფართოებული ვერსიებით CP866, KOI8-R, Windows 1251 და დამთავრებული Unicode კონსორციუმის UTF 16 და 8 თანამედროვე კოდირებით.

ზოგიერთისთვის ეს ინფორმაცია შეიძლება ზედმეტი ჩანდეს, მაგრამ თქვენ იცით, რამდენ კითხვას ვღებულობ კრაკოზიაბრებთან დაკავშირებით (არ იკითხება სიმბოლოების ნაკრები). ახლა მე მექნება საშუალება ყველას მივმართო ამ სტატიის ტექსტს და დამოუკიდებლად ვიპოვო ჩემი ჯამები. აბა, მოემზადეთ ინფორმაციის ათვისებისთვის და შეეცადეთ თვალი ადევნოთ ამბავს.

ASCII - ლათინური ტექსტის ძირითადი კოდირება

ტექსტური კოდირების შემუშავება მოხდა IT ინდუსტრიის ჩამოყალიბების პარალელურად და ამ ხნის განმავლობაში მათ მოახერხეს საკმაოდ ბევრი ცვლილება განიცადეს. ისტორიულად, ეს ყველაფერი დაიწყო EBCDIC-ით, რომელიც არ იყო ევფონიური რუსულ გამოთქმაში, რამაც შესაძლებელი გახადა ლათინური ანბანის ასოების, არაბული ციფრებისა და პუნქტუაციის ნიშნების დაშიფვრა საკონტროლო სიმბოლოებით.

მაგრამ მაინც, თანამედროვე ტექსტის კოდირების განვითარების ამოსავალი წერტილი ცნობილი უნდა ჩაითვალოს ASCII(ინფორმაციის გაცვლის ამერიკული სტანდარტული კოდი, რომელიც რუსულად ჩვეულებრივ გამოითქმის როგორც "ასკი"). იგი აღწერს პირველ 128 სიმბოლოს, რომელსაც ყველაზე ხშირად იყენებენ ინგლისურენოვანი მომხმარებლები - ლათინური ასოები, არაბული ციფრები და პუნქტუაციის ნიშნები.

ASCII-ში აღწერილი ეს 128 სიმბოლოც კი მოიცავდა სერვისის ზოგიერთ სიმბოლოს, როგორიცაა ფრჩხილები, ჰეშები, ვარსკვლავები და ა.შ. სინამდვილეში, თქვენ თავად შეგიძლიათ ნახოთ ისინი:

ეს არის ეს 128 სიმბოლო ორიგინალური ASCII ვერსიიდან, რომელიც გახდა სტანდარტი და ნებისმიერ სხვა კოდირებით თქვენ აუცილებლად შეხვდებით მათ და ისინი დადგებიან ამ თანმიმდევრობით.

მაგრამ ფაქტია, რომ ინფორმაციის ერთი ბაიტის დახმარებით შესაძლებელია არა 128, არამედ 256 სხვადასხვა მნიშვნელობის დაშიფვრა (ორი რვის ხარისხზე უდრის 256-ს), შესაბამისად, შემდეგ ძირითადი ვერსიაასუკას მთელი სერია გამოჩნდა გაფართოებული ASCII კოდირებები, რომელშიც, 128 ძირითადი სიმბოლოს გარდა, შესაძლებელი იყო ეროვნული კოდირების სიმბოლოების დაშიფვრა (მაგალითად, რუსული).

აქ, ალბათ, ღირს ცოტა მეტი ვთქვათ რიცხვების სისტემების შესახებ, რომლებიც გამოიყენება აღწერილობაში. პირველ რიგში, როგორც მოგეხსენებათ, კომპიუტერი მუშაობს მხოლოდ რიცხვებით ბინარულ სისტემაში, კერძოდ, ნულებთან და ერთებთან ("ბულის ალგებრა", თუ ვინმე კოლეჯში ან სკოლაში წავიდა). , რომელთაგან თითოეული არის 2 სიმძლავრის, ნულიდან დაწყებული და მეშვიდეში ორამდე:

ძნელი არ არის იმის გაგება, რომ ასეთ კონსტრუქციაში შეიძლება იყოს მხოლოდ 256 ნულისა და ერთის შესაძლო კომბინაცია, საკმაოდ მარტივია რიცხვის გადაყვანა ორობითი სისტემიდან ათწილადში. თქვენ უბრალოდ უნდა დაამატოთ ორის ყველა უფლებამოსილება, რომელთა ზემოთ არის ერთი.

ჩვენს მაგალითში ეს არის 1 (2 ნულის ხარისხზე) პლუს 8 (ორი 3-ის ხარისხზე), პლუს 32 (ორი მეხუთე ხარისხამდე), პლუს 64 (მეექვსემდე), პლუს 128 (მეშვიდეზე). ). სულ იღებს 233 ინჩს ათობითი სისტემაგაანგარიშება. როგორც ხედავთ, ყველაფერი ძალიან მარტივია.

მაგრამ თუ კარგად დააკვირდებით ცხრილს ASCII სიმბოლოებით, ნახავთ, რომ ისინი წარმოდგენილია თექვსმეტობითი კოდირებით. მაგალითად, ვარსკვლავი შეესაბამება თექვსმეტობით რიცხვს 2A ასუკაში. თქვენ ალბათ იცით ეს თექვსმეტობითი სისტემაარაბული ციფრების გარდა, რიცხვები ასევე გამოიყენება ლათინური ასოებით A-დან (ნიშნავს ათს) F-მდე (ნიშნავს თხუთმეტს).

ისე, ამისთვის თარგმანი ბინარული რიცხვითექვსმეტობითმიმართეთ შემდეგ მარტივ და ინტუიციურ მეთოდს. ინფორმაციის თითოეული ბაიტი იყოფა ორ ნაწილად ოთხ ბიტად, როგორც ეს ნაჩვენებია ზემოთ მოცემულ ეკრანის სურათზე. რომ. ყოველ ნახევარ ბაიტში, მხოლოდ თექვსმეტი მნიშვნელობა (ორიდან მეოთხე ხარისხამდე) შეიძლება იყოს კოდირებული ბინარულად, რომელიც ადვილად შეიძლება იყოს წარმოდგენილი თექვსმეტობითი რიცხვის სახით.

უფრო მეტიც, ბაიტის მარცხენა ნახევარში, საჭირო იქნება გრადუსების დათვლა ისევ ნულიდან დაწყებული და არა ისე, როგორც ნაჩვენებია ეკრანის სურათზე. შედეგად, რამდენიმე მარტივი გამოთვლებით, მივიღებთ, რომ ნომერი E9 დაშიფრულია ეკრანის სურათზე. იმედი მაქვს, რომ ჩემი მსჯელობის კურსი და ამ თავსატეხის გადაწყვეტა თქვენთვის გასაგები აღმოჩნდა. კარგი, ახლა გავაგრძელოთ, ფაქტობრივად, ტექსტის კოდირებაზე საუბარი.

Asuka-ს გაფართოებული ვერსიები - CP866 და KOI8-R კოდირებით ფსევდოგრაფიით

ასე რომ, ჩვენ დავიწყეთ საუბარი ASCII-ზე, რომელიც, როგორც იქნა, იყო ამოსავალი წერტილი ყველა თანამედროვე კოდირების განვითარებისთვის (Windows 1251, Unicode, UTF 8).

თავდაპირველად იგი შეიცავდა მხოლოდ ლათინური ანბანის 128 სიმბოლოს, არაბულ ციფრებს და სხვა რამეს, მაგრამ გაფართოებულ ვერსიაში შესაძლებელი გახდა ყველა 256 მნიშვნელობის გამოყენება, რომელიც შეიძლება დაშიფრული იყოს ინფორმაციის ერთ ბაიტში. იმათ. ახლა შესაძლებელია თქვენი ენის ასოების სიმბოლოების დამატება Aski-ში.

აქ საჭირო იქნება კიდევ ერთხელ გადახვევა გარკვევის მიზნით - რატომ გვჭირდება კოდირება საერთოდტექსტები და რატომ არის ეს ასე მნიშვნელოვანი. თქვენი კომპიუტერის ეკრანზე სიმბოლოები იქმნება ორი რამის საფუძველზე - ყველა სახის სიმბოლოს ვექტორული ფორმების კომპლექტი (გამოსახულებები) (ისინი კო ფაილებშია) და კოდი, რომელიც საშუალებას გაძლევთ ამოიღოთ ვექტორული ფორმების ამ ნაკრებიდან (შრიფტი). ფაილი) ზუსტად ის სიმბოლო, რომელიც საჭირო იქნება ჩასმული სწორ ადგილას.

გასაგებია, რომ ვექტორულ ფორმებზე პასუხისმგებელია თავად შრიფტები, მაგრამ კოდირებაზე პასუხისმგებელია ოპერაციული სისტემა და მასში გამოყენებული პროგრამები. იმათ. ნებისმიერი ტექსტი თქვენს კომპიუტერში იქნება ბაიტების ნაკრები, რომელთაგან თითოეული დაშიფვრავს ამ ტექსტის ერთ სიმბოლოს.

პროგრამა, რომელიც აჩვენებს ამ ტექსტს ეკრანზე (ტექსტის რედაქტორი, ბრაუზერი და ა.შ.), კოდის გარჩევისას, კითხულობს შემდეგი სიმბოლოს დაშიფვრას და ეძებს შესაბამის ვექტორულ ფორმას. სასურველი ფაილიშრიფტი, რომელიც დაკავშირებულია ამ ტექსტური დოკუმენტის საჩვენებლად. ყველაფერი მარტივი და ბანალურია.

ეს ნიშნავს, რომ იმისათვის, რომ დაშიფროთ ნებისმიერი სიმბოლო, რომელიც გვჭირდება (მაგალითად, ეროვნული ანბანიდან), უნდა დაკმაყოფილდეს ორი პირობა - ამ სიმბოლოს ვექტორული ფორმა უნდა იყოს გამოყენებული შრიფტით და ეს სიმბოლო შეიძლება იყოს კოდირებული გაფართოებულ ASCII დაშიფვრებში. ერთი ბაიტი. ამიტომ, ასეთი ვარიანტების მთელი თაიგული არსებობს. მხოლოდ რუსული ენის სიმბოლოების კოდირებისთვის, არსებობს გაფართოებული ასუკას რამდენიმე სახეობა.

მაგალითად, თავდაპირველად გამოჩნდა CP866, რომელშიც შესაძლებელი იყო რუსული ანბანის სიმბოლოების გამოყენება და ეს იყო ASCII-ის გაფართოებული ვერსია.

იმათ. მისი ზედა ნაწილი მთლიანად დაემთხვა Asuka-ს საბაზისო ვერსიას (128 ლათინური სიმბოლო, რიცხვი და ნებისმიერი სხვა სისულელე), რომელიც ნაჩვენებია სკრინშოტზე ზემოთ, მაგრამ ცხრილის ქვედა ნაწილს CP866 კოდირებით უკვე ჰქონდა ხედი ნაჩვენები ეკრანის სურათზე. მხოლოდ ქვემოთ და ნებადართულია კიდევ 128 ნიშნის დაშიფვრა (რუსული ასოები და ყველა სახის ფსევდოგრაფიკა):

ხედავთ, მარჯვენა სვეტში, რიცხვები იწყება 8-ით, tk. რიცხვები 0-დან 7-მდე ეხება ASCII-ის ძირითად ნაწილს (იხილეთ პირველი ეკრანის სურათი). რომ. რუსულ ასო "M"-ს CP866-ში ექნება კოდი 9C (იგი მდებარეობს შესაბამისი ხაზის კვეთაზე 9-თან და სვეტი C რიცხვით თექვსმეტობითი აღნიშვნით), რომელიც შეიძლება ჩაიწეროს ინფორმაციის ერთ ბაიტში, და თუ არის შესაბამისი შრიფტი რუსული სიმბოლოებით, ეს ასო უპრობლემოდ იქნება ნაჩვენები ტექსტში.

საიდან მოვიდა ეს თანხა? ფსევდოგრაფიკა CP866-ში? აქ საქმე ის არის, რომ რუსული ტექსტის ეს კოდირება შეიქმნა ჯერ კიდევ იმ ბეწვიან წლებში, როდესაც არ არსებობდა გრაფიკული ოპერაციული სისტემების ისეთი გავრცელება, როგორც ახლა. და Dos-ში და მსგავს ტექსტურ ოპერაციულ სისტემებში, ფსევდოგრაფიკამ შესაძლებელი გახადა ტექსტების დიზაინის როგორმე დივერსიფიკაცია და, შესაბამისად, CP866 და მისი ყველა სხვა თანატოლი Asuka-ს გაფართოებული ვერსიების კატეგორიიდან უხვადაა მასში.

CP866 გავრცელდა IBM-ის მიერ, მაგრამ ამის გარდა, შეიქმნა მრავალი კოდირება რუსული სიმბოლოებისთვის, მაგალითად, ამ ტიპის (გაფართოებული ASCII) შეიძლება მიეკუთვნოს KOI8-R:

მისი მოქმედების პრინციპი იგივე რჩება, როგორც ცოტა ადრე აღწერილი CP866 - ტექსტის თითოეული სიმბოლო დაშიფრულია ერთი ბაიტით. სკრინშოტი აჩვენებს KOI8-R ცხრილის მეორე ნახევარს, მას შემდეგ პირველი ნახევარი სრულად შეესაბამება ძირითად ასუკას, რომელიც ნაჩვენებია ამ სტატიის პირველ სკრინშოტში.

KOI8-R კოდირების მახასიათებლებს შორის შეიძლება აღინიშნოს, რომ მის ცხრილში რუსული ასოები არ არის ანბანური თანმიმდევრობით, როგორც, მაგალითად, ეს გააკეთეს CP866-ში.

თუ გადახედავთ პირველივე სკრინშოტს (ძირითადი ნაწილის, რომელიც შედის ყველა გაფართოებულ კოდირებაში), შეამჩნევთ, რომ KOI8-R რუსული ასოები განლაგებულია ცხრილის იმავე უჯრედებში, როგორც ლათინური ანბანის თანხმოვანი ასოები. მათთან ერთად ცხრილის პირველი ნაწილიდან. ეს გაკეთდა რუსული სიმბოლოებიდან ლათინურ სიმბოლოებზე გადასვლის მოხერხებულობისთვის, მხოლოდ ერთი ბიტის (ორი მეშვიდე ხარისხამდე ან 128) გაუქმებით.

Windows 1251 - თანამედროვე ვერსია ASCII და რატომ გამოდის krakozyabry

ტექსტის კოდირების შემდგომი განვითარება განპირობებული იყო იმით, რომ გრაფიკული ოპერაციული სისტემები პოპულარობას იძენდა და მათში ფსევდოგრაფიკის გამოყენების აუცილებლობა დროთა განმავლობაში გაქრა. შედეგად, წარმოიქმნა მთელი ჯგუფი, რომლებიც, არსებითად, ჯერ კიდევ იყო Asuka-ს გაფართოებული ვერსიები (ტექსტის ერთი სიმბოლო დაშიფრულია მხოლოდ ერთი ბაიტი ინფორმაციით), მაგრამ უკვე ფსევდოგრაფიკული სიმბოლოების გამოყენების გარეშე.

ისინი ეკუთვნოდნენ ეგრეთ წოდებულ ANSI დაშიფვრებს, რომლებიც შემუშავებული იყო ამერიკული სტანდარტების ინსტიტუტის მიერ. ჩვეულებრივ ენაზე, რუსული ენის მხარდაჭერის მქონე ვერსიისთვის ასევე გამოიყენებოდა კირიული ანბანის სახელი. ამის მაგალითი შეიძლება იყოს.

იგი დადებითად განსხვავდებოდა ადრე გამოყენებული CP866 და KOI8-R-სგან იმით, რომ მასში ფსევდოგრაფიკული სიმბოლოების ადგილი დაიკავა რუსული ტიპოგრაფიის გამოტოვებულმა სიმბოლოებმა (გარდა აქცენტის ნიშნისა), ასევე სლავურ ენებში გამოყენებულ სიმბოლოებმა. რუსულთან ახლოს (უკრაინული, ბელორუსული და ა.შ.) ):

რუსული ენის კოდირების ასეთი სიმრავლის გამო, შრიფტის მწარმოებლები და მწარმოებლები პროგრამული უზრუნველყოფათავის ტკივილი გამუდმებით ჩნდებოდა და ჩვენ, ძვირფასო მკითხველებო, ხშირად ვტოვებდით მათ ყბადაღებულებს კრაკოზიაბრიროდესაც იყო დაბნეულობა ტექსტში გამოყენებულ ვერსიასთან.

ძალიან ხშირად ისინი გამოდიოდნენ შეტყობინებების გაგზავნისას და მიღებისას ელ.ფოსტა, რამაც გამოიწვია ძალიან რთული კონვერტაციის ცხრილების შექმნა, რამაც, ფაქტობრივად, ვერ შეძლო ამ პრობლემის ფუნდამენტურად გადაჭრა და ხშირად მიმოწერის მომხმარებლები იყენებდნენ თავიდან აეცილებინათ ყბადაღებული კრაკოზიაბრები რუსული კოდირების გამოყენებისას, როგორიცაა CP866, KOI8-R ან Windows 1251.

ფაქტობრივად, შედეგი იყო კრაკოზიაბრი, რომელიც რუსული ტექსტის ნაცვლად გამოვიდა ბოროტად გამოყენებაკოდირებები ამ ენისრომელიც არ ემთხვეოდა იმას, რომელშიც იყო კოდირებული ტექსტური შეტყობინებათავდაპირველად.

ვთქვათ, თუ CP866-ით დაშიფრული სიმბოლოები შეეცდებიან აჩვენონ გამოყენებით კოდის ცხრილი Windows 1251, შემდეგ გამოვა იგივე კრაკოზიაბრი (სიმბოლოების უაზრო ნაკრები), რომელიც მთლიანად ჩაანაცვლებს შეტყობინების ტექსტს.

მსგავსი სიტუაცია ძალიან ხშირად ხდება, როდესაც ფორუმებსა თუ ბლოგებში, როდესაც ტექსტი რუსული სიმბოლოებით შეცდომით ინახება არასწორი კოდირებით, რომელიც გამოიყენება საიტზე ნაგულისხმევად, ან არასწორად. ტექსტის რედაქტორი, რომელიც ამატებს კოდს, რომელიც შეუიარაღებელი თვალით არ ჩანს.

დაბოლოს, ბევრს დაიღალა ასეთი სიტუაციით უამრავი კოდირებით და მუდმივად წარმოქმნილი კრაკოზიაბრებით, გაჩნდა წინაპირობები ახალი უნივერსალური ვარიაციის შესაქმნელად, რომელიც ჩაანაცვლებდა ყველა არსებულს და საბოლოოდ მოაგვარებდა გარეგნობის ძირეულ პრობლემას. წაუკითხავი ტექსტები. გარდა ამისა, იყო ჩინურის მსგავსი ენების პრობლემა, სადაც ენის სიმბოლოები 256-ზე მეტი იყო.

Unicode - უნივერსალური UTF კოდირებები 8, 16 და 32

ეს ათასობით სიმბოლო სამხრეთ-აღმოსავლეთ აზიის ენების ჯგუფიდან ვერ აღიწერება ინფორმაციის ერთ ბაიტში, რომელიც გამოყოფილი იყო სიმბოლოების კოდირებისთვის ASCII-ის გაფართოებულ ვერსიებში. შედეგად, კონსორციუმმა დარეკა Unicode(Unicode - Unicode Consortium) IT ინდუსტრიის მრავალი ლიდერის თანამშრომლობით (მათ, ვინც აწარმოებს პროგრამულ უზრუნველყოფას, რომელიც კოდირებს აპარატურას, რომლებიც ქმნიან შრიფტებს), რომლებიც დაინტერესებულნი იყვნენ უნივერსალური ტექსტის კოდირების გაჩენით.

უნიკოდის კონსორციუმის ეგიდით გამოშვებული პირველი ვარიაცია იყო UTF 32... კოდირების სახელში მითითებული რიცხვი ნიშნავს ბიტების რაოდენობას, რომლებიც გამოიყენება ერთი სიმბოლოს დაშიფვრისთვის. 32 ბიტი არის 4 ბაიტი ინფორმაცია, რომელიც საჭირო იქნება ახალი უნივერსალური UTF კოდირების ერთი სიმბოლოს დაშიფვრისთვის.

შედეგად, იგივე ფაილი ტექსტით დაშიფრული ASCII-ის გაფართოებულ ვერსიაში და UTF-32-ში, ამ უკანასკნელ შემთხვევაში, ექნება ზომა (წონა) ოთხჯერ მეტი. ეს ცუდია, მაგრამ ახლა ჩვენ გვაქვს შესაძლებლობა დავაშიფროთ სიმბოლოების რაოდენობა, რომელიც უდრის ორს ოცდაათი მეორე ხარისხში ( მილიარდობით პერსონაჟი, რომელიც დაფარავს ნებისმიერ მართლაც აუცილებელ მნიშვნელობას კოლოსალური ზღვრით).

მაგრამ ევროპული ჯგუფის ენების ბევრ ქვეყანას საერთოდ არ სჭირდებოდა ასეთი დიდი რაოდენობის სიმბოლოების დაშიფვრაში გამოყენება, მაგრამ UTF-32-ის გამოყენებისას მათ მიიღეს ტექსტის დოკუმენტების წონის ოთხჯერ გაზრდა არაფრისთვის, და როგორც შედეგად, გაიზარდა ინტერნეტ ტრაფიკის მოცულობა და შენახული მონაცემების მოცულობა. ეს ბევრია და ასეთ ნარჩენებს ვერავინ შეძლებს.

Unicode-ის განვითარების შედეგად, UTF-16, რომელიც იმდენად წარმატებული აღმოჩნდა, რომ ნაგულისხმევად იქნა მიღებული, როგორც საბაზისო სივრცე ყველა სიმბოლოსთვის, რომელსაც ჩვენ ვიყენებთ. ის იყენებს ორ ბაიტს ერთი სიმბოლოს დაშიფვრისთვის. ვნახოთ, როგორ გამოიყურება ეს საქმე.

ოპერაციული სისტემა Windows, შეგიძლიათ მიჰყვეთ გზას "დაწყება" - "პროგრამები" - "აქსესუარები" - "სისტემის ინსტრუმენტები" - "სიმბოლური რუკა". შედეგად, ცხრილი გაიხსნება თქვენს სისტემაში დაინსტალირებული ყველა შრიფტის ვექტორული ფორმებით. თუ აირჩევთ " დამატებითი პარამეტრები»უნიკოდის სიმბოლოების ნაკრები, თქვენ შეძლებთ თითოეული შრიფტისთვის ცალკე ნახოთ მასში შემავალი სიმბოლოების მთელი დიაპაზონი.

სხვათა შორის, რომელიმე მათგანზე დაწკაპუნებით ხედავთ მის ორ ბაიტს UTF-16 კოდიშედგება ოთხი თექვსმეტობითი ციფრისგან:

რამდენი სიმბოლო შეიძლება იყოს კოდირებული UTF-16-ში 16 ბიტით? 65536 (ორი თექვსმეტის ხარისხში) და სწორედ ეს რიცხვი იქნა აღებული, როგორც საბაზისო სივრცე უნიკოდში. გარდა ამისა, არსებობს მისი დაშიფვრის გზები და დაახლოებით ორი მილიონი სიმბოლო, მაგრამ შემოიფარგლებოდა ტექსტის მილიონი სიმბოლოს გაფართოებული სივრცით.

მაგრამ Unicode კოდირების ამ წარმატებულმა ვერსიამაც კი დიდი კმაყოფილება არ მოუტანა მათ, ვინც წერდა, მაგალითად, პროგრამებს მხოლოდ ინგლისურად, რადგან ASCII გაფართოებული ვერსიიდან UTF-16-ზე გადასვლის შემდეგ, დოკუმენტების წონა გაორმაგდა (ერთი ბაიტი ერთ სიმბოლოზე Aski-ში და ორი ბაიტი იმავე სიმბოლოსთვის UTP-16-ში).

სწორედ უნიქოდის კონსორციუმში ყველას და ყველაფრის კმაყოფილებისთვის გადაწყდა ამუშავება. ცვლადი სიგრძის კოდირება... მათ დაარქვეს UTF-8. სახელის რვა ფიგურის მიუხედავად, მას ნამდვილად აქვს ცვლადი სიგრძე, ე.ი. ტექსტის თითოეული სიმბოლო შეიძლება დაშიფრული იყოს ერთიდან ექვს ბაიტამდე სიგრძის თანმიმდევრობით.

პრაქტიკაში, UTF-8-ში გამოიყენება მხოლოდ ერთიდან ოთხ ბაიტამდე დიაპაზონი, რადგან კოდის ოთხი ბაიტის მიღმა, თეორიულადაც კი არაფრის წარმოდგენა შეუძლებელია. მასში შემავალი ყველა ლათინური სიმბოლო დაშიფრულია ერთ ბაიტში, ისევე როგორც ძველ კარგ ASCII-ში.

რაც საყურადღებოა, მხოლოდ ლათინური ანბანის კოდირების შემთხვევაში, ის პროგრამებიც კი, რომლებსაც Unicode არ ესმით, მაინც წაიკითხავენ UTF-8-ში დაშიფრულს. იმათ. Asuka-ს ძირითადი ნაწილი ახლახან გადავიდა Unicode-ის კონსორციუმის ამ გონებაში.

UTF-8-ში კირიული სიმბოლოები დაშიფრულია ორ ბაიტში, ხოლო, მაგალითად, ქართული - სამ ბაიტში. უნიკოდის კონსორციუმმა UTF 16 და 8-ის შექმნის შემდეგ გადაჭრა მთავარი პრობლემა - ახლა გვაქვს შრიფტებში არის ერთი კოდის სივრცე... ახლა კი მათ მწარმოებლებს შეუძლიათ მისი შევსება მხოლოდ ტექსტური სიმბოლოების ვექტორული ფორმებით, მათი ძლიერი და შესაძლებლობების მიხედვით. ახლა კი კომპლექტებში.

ზემოთ მოყვანილ "სიმბოლოების ცხრილში" ხედავთ, რომ სხვადასხვა შრიფტი მხარს უჭერს სიმბოლოების სხვადასხვა რაოდენობას. ზოგიერთი Unicode-ით მდიდარი შრიფტი შეიძლება იყოს ძალიან მძიმე. მაგრამ ახლა ისინი განსხვავდებიან არა იმით, რომ ისინი შექმნილია სხვადასხვა კოდირებისთვის, არამედ იმით, რომ შრიფტის მწარმოებელმა შეავსო ან არ შეავსო ერთი კოდის სივრცე გარკვეული ვექტორული ფორმებით ბოლომდე.

კრაკოზიაბრი რუსული ასოების ნაცვლად - როგორ გავასწოროთ

ახლა ვნახოთ, როგორ ჩნდება კრაკოზიაბრები ტექსტის ნაცვლად, ან, სხვა სიტყვებით რომ ვთქვათ, როგორ არის არჩეული რუსული ტექსტის სწორი კოდირება. სინამდვილეში, ის დაყენებულია პროგრამაში, რომელშიც თქვენ ქმნით ან არედაქტირებთ ამ ტექსტს, ან კოდს ტექსტის ფრაგმენტების გამოყენებით.

რედაქტირება და შექმნა ტექსტური ფაილებიმე პირადად ძალიან კარგს ვიყენებ, ჩემი აზრით. თუმცა, მას შეუძლია ხაზი გაუსვას კიდევ ასი პროგრამირების და მარკირების ენების სინტაქსს და ასევე აქვს გაფართოების შესაძლებლობა დანამატების გამოყენებით. წაიკითხეთ დეტალური მიმოხილვაეს მშვენიერი პროგრამა მოცემული ბმულიდან.

Notepad ++-ის ზედა მენიუში არის პუნქტი "Encodings", სადაც თქვენ შეძლებთ არსებული ვერსიის კონვერტაციას თქვენს საიტზე ნაგულისხმევად გამოყენებულ ვერსიაში:

Joomla 1.5 და უფრო მაღალ ვერსიაზე საიტის შემთხვევაში, ასევე WordPress-ზე ბლოგის შემთხვევაში, ბზარების გაჩენის თავიდან ასაცილებლად აირჩიეთ ვარიანტი UTF 8 BOM-ის გარეშე... რა არის BOM პრეფიქსი?

ფაქტია, რომ როდესაც შემუშავდა YUTF-16 კოდირება, რატომღაც მათ გადაწყვიტეს დაერთოთ მას ისეთი რამ, როგორიცაა სიმბოლოების კოდის დაწერის შესაძლებლობა, როგორც პირდაპირი თანმიმდევრობით (მაგალითად, 0A15), ასევე საპირისპირო (150A) . და იმისათვის, რომ პროგრამებმა გაიგონ, რომელი თანმიმდევრობით უნდა წაიკითხონ კოდები და გამოიგონეს BOM(Byte Order Mark ან სხვა სიტყვებით რომ ვთქვათ, ხელმოწერა), რაც გამოიხატა დოკუმენტების დასაწყისშივე სამი დამატებითი ბაიტის დამატებით.

UTF-8 კოდირებით, უნიკოდის კონსორციუმში BOM არ არის გათვალისწინებული და, შესაბამისად, ხელმოწერის დამატება (ეს ყველაზე ცნობილი დამატებითი სამი ბაიტი დოკუმენტის დასაწყისში) უბრალოდ ხელს უშლის ზოგიერთ პროგრამას კოდის წაკითხვაში. ამიტომ ფაილების UTP-ში შენახვისას ყოველთვის უნდა ავირჩიოთ ვარიანტი BOM-ის გარეშე (ხელმოწერის გარეშე). ასე რომ თქვენ წინსვლა დაიცავი თავი კრაკოზიაბროვის გაძევებისგან.

აღსანიშნავია, რომ Windows-ის ზოგიერთ პროგრამას ამის გაკეთება არ შეუძლია (ისინი ვერ ინახავენ ტექსტს UTP-8-ში BOM-ის გარეშე), მაგალითად, ცნობილი Windows Notepad. ის ინახავს დოკუმენტს UTF-8-ში, მაგრამ მაინც ამაგრებს ხელმოწერას (სამი დამატებითი ბაიტი) დასაწყისში. უფრო მეტიც, ეს ბაიტები ყოველთვის ერთნაირი იქნება - წაიკითხეთ კოდი პირდაპირი თანმიმდევრობით. მაგრამ სერვერებზე, ამ წვრილმანის გამო, შეიძლება წარმოიშვას პრობლემა - გამოვა krakozyabry.

ასე რომ არავითარ შემთხვევაში არ გამოიყენოთ ჩვეულებრივი Windows Notepadთქვენი საიტის დოკუმენტების რედაქტირებისთვის, თუ არ გსურთ კრაკოზიაბრების გამოჩენა. საუკეთესო და უმარტივესი ვარიანტი, ვფიქრობ, უკვე ნახსენები Notepad ++ რედაქტორია, რომელსაც პრაქტიკულად არანაირი ნაკლი არ აქვს და მხოლოდ უპირატესობებისგან შედგება.

Notepad ++-ში, კოდირების არჩევისას, თქვენ შეძლებთ ტექსტის გადაყვანას UCS-2 კოდირებად, რაც თავისთავად ძალიან ახლოსაა უნიკოდის სტანდარტთან. ასევე Notepad-ში შესაძლებელი იქნება ტექსტის დაშიფვრა ANSI-ში, ე.ი. რუსულ ენასთან დაკავშირებით ის უკვე აღწერილი იქნება ჩვენ მიერ Windows 1251-ის ზემოთ. საიდან მოდის ეს ინფორმაცია?

ის რეგისტრირებულია თქვენი საოპერაციო ოთახის რეესტრში. ვინდოუსის სისტემები- რომელი კოდირება აირჩიოს ANSI-ს შემთხვევაში, რომელი აირჩიოს OEM-ის შემთხვევაში (რუსული ენისთვის ეს იქნება CP866). თუ თქვენს კომპიუტერზე დააინსტალირებთ სხვა ნაგულისხმევ ენას, მაშინ ეს კოდირებები შეიცვლება ანალოგიურით ANSI ან OEM კატეგორიიდან იმავე ენისთვის.

მას შემდეგ რაც შეინახავთ დოკუმენტს სასურველ დაშიფვრაში Notepad ++-ში ან გახსნით დოკუმენტს საიტიდან რედაქტირებისთვის, შეგიძლიათ იხილოთ მისი სახელი რედაქტორის ქვედა მარჯვენა კუთხეში:

კრაკოზიაბროვის თავიდან ასაცილებლადზემოთ აღწერილი მოქმედებების გარდა, სასარგებლო იქნება ამ კოდირების შესახებ ინფორმაციის ჩაწერა საიტის ყველა გვერდის საწყისი კოდის სათაურში, რათა არ მოხდეს დაბნეულობა სერვერზე ან ადგილობრივ ჰოსტში.

ზოგადად, ჰიპერტექსტის მარკირების ყველა ენაში, გარდა Html, გამოიყენება სპეციალური xml დეკლარაცია, რომელიც მიუთითებს ტექსტის კოდირებაზე.

კოდის გარჩევის დაწყებამდე ბრაუზერი ეცოდინება, რომელი ვერსია გამოიყენება და ზუსტად როგორ უნდა იყოს ინტერპრეტირებული ამ ენის სიმბოლოების კოდები. მაგრამ საყურადღებოა ის, რომ თუ თქვენ შეინახავთ დოკუმენტს ნაგულისხმევ უნიკოდში, მაშინ ეს xml დეკლარაცია შეიძლება გამოტოვოთ (კოდირება ჩაითვლება UTF-8, თუ არ არის BOM ან UTF-16, თუ არის BOM).

დოკუმენტის შემთხვევაში HTML ენამიუთითოს კოდირება გამოიყენება მეტა ელემენტი, რომელიც იწერება გახსნის და დახურვის Head ტეგებს შორის:

... ...

ეს ჩანაწერი საკმაოდ განსხვავდება მიღებულისგან, მაგრამ ის სრულად შეესაბამება Html 5-ის ახალ სტანდარტს, რომელიც დანერგილია ეშმაკურად და ის 100% სწორად იქნება გაგებული ყველასთვის, ვინც გამოიყენება ამ მომენტშიბრაუზერები.

თეორიულად, მეტა ელემენტი კოდირების მითითებით HTML დოკუმენტიუკეთესი იქნება დაყენება რაც შეიძლება მაღალი დოკუმენტის სათაურშიისე, რომ ტექსტში პირველი სიმბოლოს შეხვედრის დროს, რომელიც არ არის ძირითადი ANSI-დან (რომელიც ყოველთვის სწორად იკითხება და ნებისმიერი ვარიაციით), ბრაუზერს უკვე უნდა ჰქონდეს ინფორმაცია ამ სიმბოლოების კოდების ინტერპრეტაციის შესახებ.

Წარმატებას გისურვებ! მალე შევხვდებით ბლოგის საიტის გვერდებზე

შეიძლება დაგაინტერესოთ

Რა URL მისამართებირა განსხვავებაა საიტის აბსოლუტურ და ფარდობით ბმულებს შორის
OpenServer - თანამედროვე ლოკალური სერვერიდა მისი გამოყენების მაგალითი WordPress ინსტალაციებიკომპიუტერზე
რა არის Chmod, რა ნებართვები უნდა მივცეთ ფაილებსა და საქაღალდეებს (777, 755, 666) და როგორ გავაკეთოთ ეს PHP-ით
Yandex ძიება საიტზე და ონლაინ მაღაზიაში

ინტერნეტის ამა თუ იმ ფუნქციის კონფიგურაციის მცდელობისას, ნებისმიერ მომხმარებელს ალბათ შეხვდა ისეთი კონცეფცია, როგორიცაა "უნიკოდი". იმის გასარკვევად, თუ რას ნიშნავს ეს კონცეფცია, წაიკითხეთ ეს არტიკლიდასასრულებლად.

Unicode: განმარტება

ტერმინი „უნიკოდი“ დღეს ნიშნავს სიმბოლოების კოდირების სტანდარტს. ეს სტანდარტიშემოთავაზებული იყო 1991 წელს არაკომერციული ორგანიზაცია Unicode Inc. Unicode-ის სტანდარტი შეიქმნა იმისათვის, რომ გააერთიანოს დიდი რაოდენობით სხვადასხვა სიმბოლოები ერთ დოკუმენტში. ასეთი კოდირების საფუძველზე შექმნილი გვერდი შეიძლება შეიცავდეს იეროგლიფებს, ასოებს და მათემატიკურ სიმბოლოებს. ამ კოდირებით, ყველა სიმბოლო ნაჩვენებია უპრობლემოდ.

"უნიკოდი": შექმნის მიზეზები

Unicode სისტემის გამოჩენამდე დიდი ხნით ადრე, კოდირება შეირჩა დოკუმენტის ავტორის პრეფერენციების საფუძველზე. ხშირად ამ მიზეზით ერთი დოკუმენტის წასაკითხად საჭირო იყო სხვადასხვა ცხრილების გამოყენება. თუმცა, ეს რამდენჯერმე უნდა გაკეთდეს. ამან უფრო გაართულა ცხოვრება რიგითი მომხმარებლებისთვის. როგორც უკვე აღვნიშნეთ, 1991 წელს არაკომერციული ორგანიზაცია Unicode Inc. შესთავაზა ახალი ტიპის ინფორმაციის კოდირების გამოყენება. ამ ტიპისკოდირება შეიქმნა მრავალფეროვანი სტანდარტების გაერთიანებისთვის. Unicode კოდირებამ შესაძლებელი გახადა შეუძლებელის მიღწევა: შექმნა ინსტრუმენტი, რომელიც მხარს უჭერს უზარმაზარ მრავალფეროვან სიმბოლოებს. მიღებულმა შედეგმა მოლოდინს გადააჭარბა: მივიღეთ დოკუმენტები, რომლებიც ერთდროულად შეიცავდა როგორც რუსულ, ისე ინგლისურ ტექსტებს, ასევე მათემატიკურ გამონათქვამებსა და ლათინურს. შექმნამდე ერთიანი სისტემაკოდირების დეველოპერებს მოუწიათ მრავალი პრობლემის გადაჭრა, რომლებიც წარმოიქმნება დიდი რაოდენობით სტანდარტების არსებობით, რომლებიც უკვე არსებობდა ამ მომენტში... ამ პრობლემებიდან ყველაზე გავრცელებული იყო შეზღუდული სიმბოლოების ნაკრები, ელვისებური წერა, დუბლიკატი შრიფტები და სხვადასხვა კოდირების კონვერტაციის პრობლემა.

"უნიკოდი": ექსკურსია ისტორიაში

წარმოიდგინეთ შემდეგი სურათი: 80-იანი წლების ეზოში კომპიუტერული ტექნოლოგია ჯერ კიდევ არ არის ასე გავრცელებული და დღევანდელისაგან განსხვავებული ფორმა აქვს. თითოეული ოპერაციული სისტემა უნიკალურია თავისებურად და მოდიფიცირებულია ენთუზიასტების მიერ გარკვეული სპეციფიკური საჭიროებისთვის. შედეგად, ინფორმაციის გაცვლის საჭიროებამ განაპირობა დამატებითი დახვეწა. სხვა ოპერაციულ სისტემაში შექმნილი დოკუმენტის წაკითხვის მცდელობისას, ეკრანზე ჩვეულებრივ ნაჩვენებია გაუგებარი სიმბოლოების ნაკრები. ეს მოითხოვდა შემდგომ მუშაობას დაშიფვრასთან, რაც ყოველთვის სწრაფად ვერ მოხერხდებოდა. ზოგჯერ საჭირო დოკუმენტის დამუშავებას რამდენიმე თვე სჭირდებოდა. მომხმარებლებმა, რომლებსაც ხშირად უწევთ ინფორმაციის გაცვლა, დაიწყეს სპეციალური კონვერტაციის ცხრილების შექმნა. ასეთ ცხრილებთან მუშაობამ გამოავლინა ერთი საინტერესო თვისება: აუცილებელია ასეთი ცხრილების შექმნა ერთდროულად ორი მიმართულებით. მანქანას არ შეუძლია შეასრულოს გამოთვლის ჩვეულებრივი ინვერსია. მისთვის, წყაროს ფაილი იწერება მარჯვენა სვეტში, შედეგი კი მარცხენაში. პირიქით, მათი გადაწყობა შეუძლებელია. თუ საჭირო იყო დოკუმენტში რაიმე სპეციალური სიმბოლოების გამოყენება, ჯერ ისინი უნდა დაემატებინათ, შემდეგ კი საჭირო იყო სხვა მომხმარებლისთვის აეხსნა, რა უნდა გაეკეთებინა მათთან, რომ ისინი არ გადაქცეულიყვნენ „კრიაკოზიაბრიდ“. გასათვალისწინებელია ისიც, რომ თითოეული კოდირებისთვის საკუთარი შრიფტების შემუშავება მოგიწიათ. ამან გამოიწვია ოპერაციულ სისტემაში დუბლიკატების დიდი რაოდენობის შექმნა. ასე, მაგალითად, ერთ გვერდზე მომხმარებელს შეუძლია დაინახოს სტანდარტული Times New Roman-ის იდენტური ათეული შრიფტი, მაგრამ აღნიშნულია UCS-2, UTF-16, UTF-8, ANSI. ამრიგად, საჭიროა უნივერსალური სტანდარტის შემუშავება.

Unicode: შემქმნელები

„უნიკოდის“ შექმნის ისტორიის დასაწყისი შეიძლება 1987 წელს მივაწეროთ. სწორედ მაშინ დაიწყო Xerox-ის ჯო ბეკერმა, Apple-ის მარკ დევისთან და ლი კოლინზთან ერთად, დაიწყო უნივერსალური კოდირების პრაქტიკული განვითარების კვლევა. 1988 წელს ჯო ბეკერმა გამოაქვეყნა პროექტი საერთაშორისო მრავალენოვანი კოდირების შესაქმნელად. რამდენიმე თვის შემდეგ Unicode-ის განვითარების სამუშაო ჯგუფი გაფართოვდა. მასში შედიოდნენ ექსპერტები, როგორიცაა გლენ რაიტი Sun Microsystems-დან, მაიკ კერნეგანი და კენ უისტლერი RLG-დან. ამან შესაძლებელი გახადა სამუშაოს დასრულება ერთიანი კოდირების სტანდარტის წინასწარ ფორმირებაზე.

Unicode: ზოგადი აღწერა

უნიკოდის კოდირება ეფუძნება ზოგადი კონცეფციასიმბოლო. ეს განმარტება გაგებულია, როგორც აბსტრაქტული ფენომენი, რომელიც არსებობს წერის სახით, განხორციელებული გრაფემების საშუალებით. უნიკოდში თითოეული სიმბოლო ასოცირდება უნიკალურ კოდთან, რომელიც ეკუთვნის სტანდარტის ამა თუ იმ ბლოკს. ასე, მაგალითად, გრაფემა "B" წარმოდგენილია როგორც ინგლისურ, ასევე რუსულ ენებზე, მაგრამ ის შეესაბამება ორ განსხვავებულ სიმბოლოს. ეს სიმბოლოები ასევე შეიძლება გარდაიქმნას პატარებში. ეს ნიშნავს, რომ თითოეული ეს სიმბოლო აღწერილია გასაღებით, თვისებების ნაკრებით და სახელით.

Unicode: უპირატესობები

იგი განსხვავდება სხვა თანამედროვე კოდირების სისტემებისგან "უნიკოდი" სიმბოლოების უზარმაზარი მარაგით სხვადასხვა სიმბოლოების "დაშიფვრისთვის". საქმე ისაა, რომ წინა დაშიფვრებს მხოლოდ 8 ბიტი ჰქონდა. ეს ნიშნავს, რომ მათ მხოლოდ 28 სიმბოლოს უჭერდნენ მხარს. ახალ განვითარებას 216 პერსონაჟი ჰყავდა, რაც წინგადადგმული ნაბიჯი იყო. ამრიგად, შესაძლებელი გახდა თითქმის ყველა არსებული ანბანის დაშიფვრა. კონვერტაციის ცხრილების გამოყენების აუცილებლობა "უნიკოდის" მოსვლასთან ერთად გაქრა. ერთი სტანდარტის არსებობამ უბრალოდ ნულამდე შეამცირა მათი სარგებლიანობა. ამავდროულად, "კრიაკოზიაბრიც" გაქრა. ახალი სტანდარტის გაჩენამ მათი არსებობა შეუძლებელი გახადა. ასევე აღმოიფხვრა დუბლიკატი შრიფტების შექმნის აუცილებლობა.

Unicode: განვითარება

მიუხედავად იმისა, რომ პროგრესი ჯერ კიდევ არ დგას, Unicode კოდირება აგრძელებს წამყვან პოზიციებს მსოფლიოში. ეს შესაძლებელი გახდა დიდწილად იმის გამო, რომ მისი განხორციელება ადვილი გახდა და ფართოდ გავრცელდა. თუმცა, არ უნდა ვივარაუდოთ, რომ იგივე Unicode კოდირება გამოიყენება დღეს, როგორც 25 წლის წინ. ვერსია 5.x.x დღეს გამოიყენება. დაშიფრული სიმბოლოების რაოდენობა გაიზარდა 231-მდე. დაარსებიდან 2.0.0 ვერსიამდე, Unicode კოდირებამ თითქმის გააორმაგა სიმბოლოების რაოდენობა, რომელიც შეიცავს. მომდევნო წლებში, შესაძლებლობების ეს ზრდა გაგრძელდა. იმ დროისთვის, როდესაც გამოჩნდა ვერსია 4.0.0, საჭირო გახდა თავად სტანდარტის გაზრდა. შედეგად, უნიკოდის კოდირებამ შეიძინა ის ფორმა, რომელშიც ის დღეს ვიცით.

კიდევ რა არის სასარგებლო უნიკოდში? სიმბოლოების უზარმაზარი, მუდმივად მზარდი რაოდენობის გარდა, Unicode კოდირებას აქვს ერთი საკმაოდ სასარგებლო ფუნქცია. ეს არის ნორმალიზება. კოდირება არ ხარჯავს კომპიუტერულ რესურსებს ერთი და იგივე სიმბოლოს რეგულარულ შემოწმებაზე, რომელსაც შეიძლება ჰქონდეს მსგავსი მართლწერა სხვადასხვა ანბანში. ამ მიზნით გამოიყენება სპეციალური ალგორითმი, რომელიც შესაძლებელს ხდის მსგავსი სიმბოლოების ცალ-ცალკე გამოტანას გრაფიკში და მათზე მითითებისას და არა ყოველ ჯერზე ყველა ინფორმაციის შემოწმებას. სულ შემუშავებულია და დანერგილია ოთხი ასეთი ალგორითმი. თითოეულ მათგანში ტრანსფორმაცია ხორციელდება გარკვეული პრინციპის მიხედვით, რომელიც განსხვავდება სხვებისგან.

ინტერნეტის თითოეულმა მომხმარებელმა, რომელიც ცდილობდა მისი ამა თუ იმ ფუნქციის კონფიგურაციას, ერთხელ მაინც ნახა ეკრანზე დაწერილი სიტყვა "უნიკოდი". ამ სტატიის წაკითხვით გაიგებთ რა არის.

განმარტება

Unicode კოდირება არის სიმბოლოების კოდირების სტანდარტი. მას შესთავაზა არაკომერციული ორგანიზაცია Unicode Inc. 1991 წელს. სტანდარტი შექმნილია იმისთვის, რომ გააერთიანოს რაც შეიძლება მეტი სხვადასხვა ტიპის სიმბოლო ერთ დოკუმენტში. მის საფუძველზე შექმნილი გვერდი შეიძლება შეიცავდეს ასოებს და იეროგლიფებს სხვადასხვა ენიდან (რუსულიდან კორეულამდე) და მათემატიკურ ნიშნებს. ამ შემთხვევაში, ამ კოდირების ყველა სიმბოლო ნაჩვენებია უპრობლემოდ.

შექმნის მიზეზები

ოდესღაც, ერთიანი სისტემის „უნიკოდის“ გაჩენამდე დიდი ხნით ადრე, კოდირება შეირჩა დოკუმენტის ავტორის პრეფერენციებიდან გამომდინარე. ამ მიზეზით, ხშირად, ერთი დოკუმენტის წასაკითხად უწევდათ გამოყენება სხვადასხვა მაგიდები... ზოგჯერ ეს რამდენჯერმე უნდა გაკეთდეს, რაც საგრძნობლად ართულებდა ჩვეულებრივი მომხმარებლის ცხოვრებას. როგორც უკვე აღვნიშნეთ, ამ პრობლემის გადაწყვეტა 1991 წელს შემოგვთავაზა არაკომერციული ორგანიზაცია Unicode Inc.-მა, რომელმაც შესთავაზა სიმბოლოების კოდირების ახალი ტიპი. ის გამიზნული იყო მოძველებული და მრავალფეროვანი სტანდარტების გაერთიანებას. „უნიკოდი“ არის კოდირება, რომელმაც საშუალება მოგვცა მიგვეღწია იმ დროისთვის წარმოუდგენელზე: შეგვექმნა ინსტრუმენტი, რომელიც მხარს უჭერს უამრავ სიმბოლოს. შედეგმა ბევრ მოლოდინს გადააჭარბა - გამოჩნდა დოკუმენტები, რომლებიც ერთდროულად შეიცავდა ინგლისურ და რუსულ ტექსტებს, ლათინურ და მათემატიკურ გამონათქვამებს.

მაგრამ ერთიანი კოდირების შექმნას წინ უძღოდა რიგი პრობლემების გადაჭრის აუცილებლობა, რომლებიც წარმოიშვა იმ დროს უკვე არსებული სტანდარტების უზარმაზარი მრავალფეროვნების გამო. ყველაზე გავრცელებულია:

  • ელფური ასოები, ანუ „კრაკოზიაბრი“;
  • შეზღუდული სიმბოლოების ნაკრები;
  • კოდირების კონვერტაციის პრობლემა;
  • შრიფტების დუბლირება.

მცირე ისტორიული ექსკურსია

წარმოიდგინეთ, 80-იანი წლებია. Კომპიუტერული ტექნოლოგიაჯერ არც ისე გავრცელებულია და დღევანდელისაგან განსხვავებული ფორმა აქვს. იმ დროს, თითოეული OS უნიკალურია თავისებურად და შეცვლილია თითოეული ენთუზიასტის მიერ კონკრეტული საჭიროებისთვის. ინფორმაციის გაცვლის საჭიროება იქცევა სამყაროში ყველაფრის დამატებით დახვეწაში. სხვა OS-ით შექმნილი დოკუმენტის წაკითხვის მცდელობა ხშირად აჩვენებს ეკრანზე სიმბოლოების გაუგებარ კრებულს და იწყება თამაშები კოდირებით. ამის სწრაფად გაკეთება ყოველთვის არ არის შესაძლებელი და ზოგჯერ საჭირო დოკუმენტის გახსნა შესაძლებელია ექვსი თვის შემდეგ, ან თუნდაც მოგვიანებით. ადამიანები, რომლებიც ხშირად ცვლიან ინფორმაციას, თავად ქმნიან კონვერტაციის ცხრილებს. ასე რომ, მათზე მუშაობა ცხადყოფს საინტერესო დეტალი: ისინი უნდა შეიქმნას ორი მიმართულებით: „ჩემიდან შენამდე“ და პირიქით. მანქანას არ შეუძლია გამოთვლების ბანალური ინვერსიის გაკეთება, რადგან მარჯვენა სვეტში არის წყარო, ხოლო მარცხნივ - შედეგი, მაგრამ არა პირიქით. თუ საჭირო იყო დოკუმენტში რაიმე სპეციალური სიმბოლოების გამოყენება, ისინი ჯერ უნდა დაემატებინათ, შემდეგ კი პარტნიორს აეხსნათ, რა უნდა გაეკეთებინა, რომ ეს სიმბოლოები არ გადაქცეულიყო „კრაკოზიაბრად“. და არ უნდა დაგვავიწყდეს, რომ თითოეული კოდირებისთვის, თქვენ უნდა შექმნათ ან დანერგოთ თქვენი საკუთარი შრიფტები, რამაც გამოიწვია OS- ში დუბლიკატების დიდი რაოდენობის შექმნა.

ასევე წარმოიდგინეთ, რომ შრიფტების გვერდზე ნახავთ 10 იდენტურ Times New Roman მცირე ანოტაციებით: UTF-8, UTF-16, ANSI, UCS-2. გესმით ახლა, რომ აუცილებელი იყო უნივერსალური სტანდარტის შემუშავება?

"შემოქმედი მამები"

Unicode-ის წარმოშობა 1987 წლიდან იწყება, როდესაც Xerox-ის ჯო ბეკერმა, ლი კოლინზთან და მარკ დევისთან ერთად Apple-მა, დაიწყო კვლევა უნივერსალური პერსონაჟების ნაკრების პრაქტიკული შექმნის შესახებ. 1988 წლის აგვისტოში ჯო ბეკერმა გამოაქვეყნა წინადადების პროექტი 16-ბიტიანი საერთაშორისო მრავალენოვანი კოდირების სისტემის შესახებ.

რამდენიმე თვის შემდეგ სამუშაო ჯგუფი Unicode გაფართოვდა, რათა მოიცავდეს კენ უისლერს და მაიკ კერნეგანს RLG-დან, გლენ რაიტი Sun Microsystems-დან და რამდენიმე სხვა, რამაც გამოიწვია წინასწარი სამუშაოს დასრულება საერთო კოდირების სტანდარტზე.

ზოგადი აღწერა

Unicode დაფუძნებულია პერსონაჟის კონცეფციაზე. ეს განსაზღვრება გაგებულია, როგორც აბსტრაქტული ფენომენი, რომელიც არსებობს დამწერლობის სპეციფიკურ ფორმაში და რეალიზდება გრაფემების (მათი „პორტრეტების“) მეშვეობით. თითოეული სიმბოლო "Unicode"-ში მითითებულია უნიკალური კოდით, რომელიც ეკუთვნის სტანდარტის კონკრეტულ ბლოკს. მაგალითად, არის გრაფემა B როგორც ინგლისურ, ასევე რუსულ ანბანში, მაგრამ უნიკოდში ის შეესაბამება 2 სხვადასხვა სიმბოლოს. მათზე გამოიყენება ტრანსფორმაცია, ანუ თითოეული მათგანი აღწერილია მონაცემთა ბაზის გასაღებით, თვისებების ნაკრებით და სრული სახელით.

უნიკოდის უპირატესობები

Unicode კოდირება განსხვავდებოდა მისი დანარჩენი თანამედროვეებისგან სიმბოლოების უზარმაზარი მარაგით სიმბოლოების „დაშიფვრისთვის“. ფაქტია, რომ მის წინამორბედებს ჰქონდათ 8 ბიტი, ანუ მათ მხარს უჭერდნენ 28 სიმბოლოს, მაგრამ ახალი განვითარებაუკვე ჰყავდა 216 პერსონაჟი, რაც წინგადადგმული გიგანტური ნაბიჯი იყო. ამან შესაძლებელი გახადა თითქმის ყველა არსებული და გავრცელებული ანბანის დაშიფვრა.

"უნიკოდის" მოსვლასთან ერთად არ იყო საჭირო კონვერტაციის ცხრილების გამოყენება: როგორ ერთიანი სტანდარტიმან უბრალოდ უარყო მათი საჭიროება. ანალოგიურად, "კრაკოზიაბრები" დავიწყებას მიეცა - ერთი სტანდარტი მათ შეუძლებელი გახადა, ასევე აღმოფხვრა დუბლიკატი შრიფტების შექმნის აუცილებლობა.

Unicode-ის განვითარება

რა თქმა უნდა, პროგრესი არ დგას და პირველი პრეზენტაციიდან 25 წელი გავიდა. ამასთან, უნიკოდის კოდირება ჯიუტად ინარჩუნებს თავის პოზიციას მსოფლიოში. მრავალი თვალსაზრისით, ეს შესაძლებელი გახდა იმის გამო, რომ იგი გახდა ადვილად დანერგილი და ფართოდ გავრცელებული, აღიარებული იქნა როგორც საკუთრების (ფასიანი) და ღია კოდის პროგრამული უზრუნველყოფის დეველოპერები.

ამავდროულად, არ უნდა ვივარაუდოთ, რომ დღეს ჩვენთვის ხელმისაწვდომია იგივე Unicode კოდირება, როგორც მეოთხედი საუკუნის წინ. ამ დროისთვის, მისი ვერსია შეიცვალა 5.xx-ით და დაშიფრული სიმბოლოების რაოდენობა გაიზარდა 231-მდე. სიმბოლოების უფრო დიდი მარაგის გამოყენების შესაძლებლობა მიტოვებული იყო, რათა კვლავ შენარჩუნებულიყო Unicode-16-ის მხარდაჭერა (შიფრები, სადაც მაქსიმალური სიმბოლოების რაოდენობა შემოიფარგლებოდა 216-ით). დაარსების დღიდან და 2.0.0 ვერსიამდე, "Unicode Standard"-მა თითქმის გააორმაგა მასში შემავალი სიმბოლოების რაოდენობა. შესაძლებლობების ზრდა მომდევნო წლებშიც გაგრძელდა. 4.0.0 ვერსიით, საჭირო გახდა თავად სტანდარტის გაზრდა, რაც გაკეთდა. შედეგად „უნიკოდმა“ შეიძინა ის ფორმა, როგორშიც მას დღეს ვიცნობთ.

კიდევ რა არის უნიკოდში?

სიმბოლოების უზარმაზარი, მუდმივად მზარდი რაოდენობის გარდა, მას აქვს კიდევ ერთი სასარგებლო თვისება. ეს არის ეგრეთ წოდებული ნორმალიზაცია. იმის ნაცვლად, რომ გადახედოთ მთელი დოკუმენტის სიმბოლოების მიხედვით და ჩაანაცვლოთ შესაბამისი ხატები საძიებო ცხრილიდან, გამოიყენება ნორმალიზაციის ერთ-ერთი არსებული ალგორითმი. რაზე ვსაუბრობთ?

იმის ნაცვლად, რომ დახარჯოთ გამოთვლითი რესურსები ერთი და იგივე სიმბოლოს რეგულარულ შემოწმებაზე, რომელიც შეიძლება მსგავსი იყოს სხვადასხვა ანბანში, გამოიყენება სპეციალური ალგორითმი. ეს საშუალებას გაძლევთ ამოიღოთ მსგავსი სიმბოლოები ჩანაცვლების ცხრილის ცალკეულ სვეტში და მიმართოთ მათ, ვიდრე ხელახლა შეამოწმოთ ყველა მონაცემი უსასრულოდ.

შემუშავებულია და დანერგილია ოთხი ასეთი ალგორითმი. თითოეულ მათგანში ტრანსფორმაცია ხდება მკაცრად განსაზღვრული პრინციპის მიხედვით, რომელიც განსხვავდება სხვებისგან, ამიტომ არ შეიძლება რომელიმე მათგანის დასახელება ყველაზე ეფექტური. თითოეული შემუშავებულია კონკრეტული საჭიროებისთვის, დანერგილია და წარმატებით გამოიყენება.

სტანდარტის განაწილება

მისი ისტორიის 25 წლის განმავლობაში, Unicode კოდირება ალბათ ყველაზე ფართოდ გამოიყენება მსოფლიოში. პროგრამები და ვებ გვერდები ასევე მორგებულია ამ სტანდარტზე. ის ფაქტი, რომ უნიკოდს იყენებს ინტერნეტ რესურსების 60%-ზე მეტი, აპლიკაციის სიგანზე მეტყველებს.

ახლა თქვენ იცით, როდის გაჩნდა Unicode სტანდარტი. რა არის ეს, თქვენ ასევე იცით და შეძლებთ შეაფასოთ Unicode Inc-ის სპეციალისტთა ჯგუფის მიერ გაკეთებული გამოგონების სრული მნიშვნელობა. 25 წელზე მეტი ხნის წინ.

ამ საიტს სჭირდება JavaScript სწორად ფუნქციონირებისთვის. გთხოვთ, ჩართოთ JavaScript თქვენი ბრაუზერის პარამეტრებში.

უნიქოდის სიმბოლოების ცხრილი

მაჩვენე ყველა
დიაპაზონი: 0000-001F: საკონტროლო სიმბოლოები C0 0020-007F: საბაზისო ლათინური 0080-009F: საკონტროლო სიმბოლოები C1 00A0-00FF: გაფართოებული ლათინური-1 სიმბოლოები 0100-017F: გაფართოებული ლათინური-A 0180-024 ლათინური-A 0180-024 გაღრმავებული ლათინური B-024F: : საერთაშორისო ფონეტიკური ანბანის გაფართოებული სიმბოლოების ნაკრები 02B0-02FF: არაკომბინირებული გაფართოებული მოდიფიკატორი სიმბოლოები 0300-036F: კომბინირებული დიაკრიტიკა 0370-03FF: ბერძნული და კოპტური ანბანი 0400-04FF: კირილური 0250-05000-0400-04FF: კირილური 02500-0500-0400-04:04F: კირილური 02:5000-00 ანბანი 0590 -05FF: ებრაული 0600-06FF: არაბული 0700-074F: სირიული 0750-077F: დამატებითი არაბული სიმბოლოები 0780-07BF: Tana (მალდივიური) 07C0-07FF: Nko 0800-080500FF: Nko 0800-080500FH : არაბული A-გაფართოებული სიმბოლოების ნაკრები 0900-097F: დევანაგარი 0980-09FF: ბენგალური 0A00-0A7F: გურმუხი 0A80-0AFF: გუჯარათი 0B00-0B7F: ორია 0B80-0BFF0: ტამილური 0C7 0C80-0CFF: კანადა 0D00-0D7F: მალაიალამური 0D80-0DFF: სინჰალური 0E00-0E7F: ტაილანდური 0E80-0EFF: ლაოსი 0F00-0FFF: ტიბეტური 1000-109F: მიანმარის 1000-109F: მიანმარის 1000-109: ჰანგულური 100-100 ქართ. -137F: ეთიოპური სილაბური დამწერლობა 1380-139F: დამატებითი ეთიოპური დამწერლობის სიმბოლოები 13A0-13FF: ჩეროკის დამწერლობა 1400-167F: კანადური სილაბური დამწერლობა 1680-169F: ოგამი 16A0-17F7: ოგამი 16A0-16F70: ოგამი 16A0-16F70: სკრიპტი 16A0-17F7: ჰანუნო 1740-175F: ბუჰიდი 1760-177F: თაგბანვა 1780-17FF: ტაილანდური დამწერლობა 1800-18AF: ძველი მონღოლური დამწერლობა 18B0-18FF: გაფართოებული კანადური სილაბური დამწერლობა 1900-194F: 179F19D99-ახალი დამწერლობა ანბანის ფილები 19E0-19FF: ქმერული სიმბოლოები 1A00-1A1F: ბუგი დამწერლობა (ლონტარა) 1A20-1AAF: ძველი ანბანის ფილები (ტაი ტამი) 1B00-1B7F: ბალინური დამწერლობა 1B80-1 BBF: სუნდური დამწერლობა 1BC0-1BFF: ბატაკის დამწერლობა 1C00-1C4F: ლეპჩა (რონგული) დამწერლობა 1C50-1C7F: ოლ ჩიკი დამწერლობა 1CD0-1CFF: ვედური სიმბოლოები 1D00-1D7F: ფონეტიკური გაფართოებები 1D80-1D დამატებითი გაფართოებები: 1D80-1D დამატებითი ტელეფონი კომბინირებული დიაკრიტიკები 1E00-1EFF: გაფართოებული ლათინური გაფართოებული 1F00-1FFF: გაფართოებული ბერძნული სიმბოლოების ნაკრები 2000-206F: პუნქტუაციის ნიშნები 2070-209F: ზედნაწერები და ქვესკრიპტები 20A0-20CF: ვალუტის სიმბოლოები0-20cri20-206FD სიმბოლოების მსგავსად 2150-218F: რიცხვითი ფორმები 2190-21FF: ისრები 2200-22FF: მათემატიკური ოპერატორები 2300-23FF: სხვადასხვა ტექნიკური სიმბოლოები 2400-243F: საკონტროლო კოდი ხატები 2440-260F რიცხვები 2440-260F რიცხვები: 2440-260F 2440-260F სიმბოლოები: : ჩარჩოების დახატვის სიმბოლოები 2580-259F: სიმბოლოების შევსება 25A0-25FF: გეომეტრიული ფორმები 2600-26FF: სხვადასხვა სიმბოლოები 27 00-27BF: Dingbats 27C0-27EF: სხვადასხვა მათემატიკის სიმბოლოები-A 27F0-27FF: სხვადასხვა ისრები-A 2800-28FF: ბრაილის შრიფტი 2900-297F: სხვადასხვა ისრები-B 2980-2980-2980-29. ოპერატორები 2B00-2BFF: სხვადასხვა სიმბოლოები და ისრები 2C00-2C5F: გლაგოლიტური 1AB0-1AFF: კომბინირებული დიაკრიტიკა (გაფართოება A) 1CC0-1CCF: გაფართოებული სუნდური სიმბოლოების ნაკრები A9E0-A9FF: მიანმარის სკრიპტი: გაფართოების სიმბოლოები BAAE0-ს გაფართოება დასაწერად Meitei AB30-AB8F: გაფართოებული ლათინური-E AB30-AB6F: Warang-kshiti AB90-ABBF: Beria წერს Zaghawa 2C60-2C7F: გაფართოებული ლათინური-C 2C80-2CFF: კოპტური ანბანი 2D00-2D2F ქართული ასოების დამატება: 2D30-2D7F: Tifinagh 2D80-2DDF: ეთიოპიური გაფართოებული სიმბოლოების ნაკრები 2DE0-2DFF: კირილიცა გაფართოებული-A 2E00-2E7F: დამატებითი ნიშნებისასვენი ნიშნები 2E80-2EFF: დამატებითი KJK იეროგლიფური კლავიშები 2F00-2FDF: Kangxi ლექსიკონის იეროგლიფური კლავიშები 2FF0-2FFF: სიმბოლოები იეროგლიფების აღწერისთვის 3000-303F: CJK სიმბოლოები და პუნქტუაცია 3000-303F: CJK სიმბოლოები და პუნქტუაცია: -318F: Chamo შერწყმული ჰანგულთან 3190-319F: სიმბოლოები გამოყენებული Cambun 31A0-31BF: გაფართოებული bopomofo სიმბოლოების ნაკრები 31C0-31EF: CJK თვისებები 31F0-31FF: კატაკანა ფონეტიკური გაფართოებები 3200-3KJ 320FF და Need 3200-32FF3: თავსებადობის ნიშნები 3400-4DBF: CJK ერთიანი სიმბოლოები (გაფართოება A) 4DC0-4DFF: I ჩინგ ჰექსაგრამები 4E00-9FFF: CJK ერთიანი სიმბოლოები A000-A48F: სილაბები და A490-A4CF: -D0pha3FF4 - Radicals ჩაწერა A640-A69F: გაფართოებული კირილიცა-B A6A0-A6FF: ბამუმის ჩაწერა A700-A71F: ტონის შეცვლის სიმბოლოები A720-A7FF: ლათინური D გაფართოებული A800-A82F: Siloti Nagri A830-A83F: ინდური რიცხვითი სიმბოლოები A87F: კვადრატული პი: smo Pagba Lama A880-A8DF: Saurashtra A8E0-A8FF: Devanagari გაფართოებული სიმბოლოების ნაკრები A900-A92F: Kayah Lee A930-A95F: Rejang A960-A97F: Hangul (გაფართოება A) A980-A9A9DAF0Script: MAASCRIPT (გაფართოება A) AA80-AADF: Tai Viet დამწერლობა AB00-AB2F: ეთიოპიური დამწერლობის სიმბოლოების ნაკრები (გაფართოება A) ABC0-ABFF: Meitei / მანიპური AC00-D7AF: ჰანგულის შრიფტები D800-DB7F: სუროგატული წყვილების ზედა ნაწილი -DBFF0 DBB8 სუროგატი წყვილების ნაწილი პირადი გამოყენებისთვის DC00-DFFF: სუროგატი წყვილების ქვედა ნაწილი E000-F8FF: ზონა პირადი გამოყენებისთვის F900-FAFF: თავსებადი CJK სიმბოლოები FB00-FB4F: ანბანური გამოსახულებები FB50-FDCF: არაბული ასოების წარმოდგენის ფორმები-A FFF0 FDFF: არაბული ასო-A FE00-FE0F: შრიფტის ამომრჩევები FE10-FE1F: ვერტიკალური ფორმები FE20-FE2F: კომბინირებული ნახევრები FE30-FE4F: CJK თავსებადობის ნიმუშები FE50-FE6F: მცირე ზომის ვარიანტები FE70-FE FF: არაბული ასო-B FF00-FFEF: ნახევარსიგანის და სრული სიგანის ფორმები FFF0-FFFF: სპეციალური სიმბოლოები

  • რა არის Unicode?

    Unicode(ინგლ. Unicode) არის სიმბოლოების კოდირების უნივერსალური სტანდარტი, რომელიც საშუალებას აძლევს სიმბოლოების მიწოდებას მსოფლიოს ყველა ენაზე.

    ASCII-ისგან განსხვავებით, ერთი სიმბოლო დაშიფრულია ორ ბაიტში, რაც შესაძლებელს ხდის გამოყენებას 65 536 პერსონაჟები წინააღმდეგ 256 .

    მოგეხსენებათ, ერთი ბაიტი არის მთელი რიცხვი ნაკაწრიადრე 255 ... თავის მხრივ, ბაიტი შედგება რვაბიტები, რომლებიც ინახავს ციფრულ მნიშვნელობებს ბინარული ფორმით, სადაც მიმდინარე ბიტის ყოველი მომდევნო ერთეული წინა ბიტის მნიშვნელობაზე ორჯერ აღემატება. ამრიგად, ორ ბაიტს შეუძლია შეინახოს ნომერი ნაკაწრიადრე 65 535 , რომელიც საშუალებას გვაძლევს გამოვიყენოთ 65 536 სიმბოლოები (ნულოვანი + 65 535 ნულიც რიცხვია, არაფერია).

    უნიკოდის სიმბოლოები იყოფა განყოფილებებად. Პირველი 128 გმირები იმეორებენ ცხრილს ASCII.

    კოდირების ოჯახი პასუხისმგებელია სიმბოლოების ჩვენებაზე. Unicode (Unicode Transformation Format - UTF). ყველაზე ცნობილი და ფართოდ გამოყენებული კოდირება არის UTF-8.

  • როგორ გამოვიყენო მაგიდა?

    სიმბოლოები წარმოდგენილია 16 ცალი სტრიქონზე. ზემოდან ხედავ თექვსმეტობით რიცხვიდან 0 ადრე 16 ... მარცხნივ, ანალოგიური რიცხვები თექვსმეტობითი ფორმით 0 ადრე ფფფ.
    მარცხენა ნომრის ზემოთ მოცემულ ნომერთან დაკავშირებით, შეგიძლიათ გაიგოთ სიმბოლოების კოდი. მაგალითად: ინგლისური ასო ხაზზე მდებარეობს 004 , სვეტში 6 : 004 + 6 = სიმბოლოს კოდი 0046 .

    თუმცა, თქვენ შეგიძლიათ უბრალოდ გადახვიდეთ თავზე კონკრეტული ხასიათიიხილეთ ცხრილი სიმბოლოების კოდისთვის. ან დააწკაპუნეთ სიმბოლოზე მის დასაკოპირებლად, ან მის კოდს ერთ-ერთ ფორმატში.

    საძიებო ველში შეგიძლიათ შეიყვანოთ საძიებო საკვანძო სიტყვები, მაგალითად: ისრები, მზე, გული. ალტერნატიულად, შეგიძლიათ მიუთითოთ სიმბოლოების კოდი ნებისმიერ ფორმატში, მაგალითად: 1123, 04BC, چ. ან თავად სიმბოლო, თუ გსურთ იცოდეთ სიმბოლოს კოდი.

    Ძებნა საკვანძო სიტყვებიამჟამად დამუშავების პროცესშია, ამიტომ შეიძლება შედეგი არ გამოიღოს. მაგრამ ბევრი პოპულარული სიმბოლო უკვე შეგიძლიათ ნახოთ.

დაიჯერეთ თუ არა, ბრაუზერში ჩაშენებულია გამოსახულების ფორმატი. ეს ფორმატი საშუალებას აძლევს სურათების ჩატვირთვას, სანამ ისინი საჭირო იქნება, უზრუნველყოფს გამოსახულების რენდირებას რეგულარულად ან ბადურის ეკრანებიდა საშუალებას გაძლევთ დაამატოთ CSS სურათებზე. კარგი, ეს მთლად ასე არ არის. ეს არ არის ასპექტის თანაფარდობა, თუმცა ყველაფერი დანარჩენი ჯერ კიდევ ძალაშია. მისი გამოყენებით, თქვენ შეგიძლიათ შექმნათ რეზოლუციით დამოუკიდებელი ხატები, რომელთა ჩატვირთვას დრო არ სჭირდება და სტილიზებულია CSS-ის გამოყენებით.

რა არის Unicode?

Unicode არის უნარი სწორად აჩვენოს ასოები და პუნქტუაციის ნიშნები სხვადასხვა ენიდან ერთ გვერდზე. ეს წარმოუდგენლად სასარგებლოა: მომხმარებლებს შეეძლებათ იმუშაონ თქვენს საიტზე მთელ მსოფლიოში და ის აჩვენებს იმას, რაც გსურთ - ეს შეიძლება იყოს ფრანგული აქცენტებით ან კანჯი.

Unicode აგრძელებს განვითარებას: ახლა აქტუალურია ვერსია 8.0, რომელშიც 120 ათასზე მეტი სიმბოლოა (ორიგინალურ სტატიაში, რომელიც გამოქვეყნდა 2014 წლის დასაწყისში, ეს იყო ვერსია 6.3 და 110 ათასი სიმბოლო).

ასოებისა და ციფრების გარდა, უნიკოდში არის სხვა სიმბოლოები და ხატები. ვ უახლესი ვერსიებიმათ შორისაა emojis, რომლებიც შეგიძლიათ იხილოთ iOS მესენჯერში.

HTML გვერდები იქმნება უნიკოდის სიმბოლოების თანმიმდევრობიდან და გარდაიქმნება ბაიტებად ქსელში გაგზავნისას. ნებისმიერი ენის თითოეულ ასოს და თითოეულ სიმბოლოს აქვს თავისი უნიკალური კოდი და დაშიფრულია ფაილის შენახვისას.

UTF-8 კოდირების სისტემის გამოყენებისას, შეგიძლიათ პირდაპირ ჩასვათ უნიკოდის სიმბოლოები ტექსტში, მაგრამ ასევე შეგიძლიათ დაამატოთ ისინი ტექსტში ციფრული სიმბოლური ბმულის მითითებით. მაგალითად, ეს არის გულის სიმბოლო და თქვენ შეგიძლიათ აჩვენოთ ეს სიმბოლო უბრალოდ ნიშანში კოდის დამატებით.

ეს რიცხვითი მითითება შეიძლება მითითებული იყოს როგორც ათობითი, ასევე თექვსმეტობით ფორმატში. ათობითი ფორმატი მოითხოვს დასაწყისში x ასოს დამატებას, აღნიშვნა მისცემს იგივე გულს () როგორც წინა ვარიანტი. (2665 არის 9829 წლის თექვსმეტობითი ვერსია).

თუ თქვენ დაამატებთ Unicode სიმბოლოს CSS-ის გამოყენებით, მაშინ შეგიძლიათ გამოიყენოთ მხოლოდ თექვსმეტობითი მნიშვნელობები.

ზოგიერთი ყველაზე ხშირად გამოყენებული უნიკოდის სიმბოლოს აქვს უფრო დასამახსოვრებელი ტექსტის სახელები ან აბრევიატურები რიცხვითი კოდების ნაცვლად, როგორიცაა ამპერსანდი (& - &). ასეთ სიმბოლოებს ე.წ მნემონიკა HTML-ში, სრული სია ხელმისაწვდომია ვიკიპედიაში.

რატომ უნდა გამოიყენოთ უნიკოდ?

კარგი შეკითხვაა, აქ არის რამდენიმე მიზეზი:

  1. სხვადასხვა ენიდან სწორი სიმბოლოების გამოყენება.
  2. ხატების ჩანაცვლება.
  3. @ font-face-ით დაკავშირებული ხატულების ჩანაცვლება.
  4. CSS კლასების განსაზღვრა

მოქმედი პერსონაჟები

პირველი მიზეზი არ საჭიროებს დამატებით მოქმედებას. თუ HTML შენახულია UTF-8 ფორმატში და მისი კოდირება გადაეცემა ქსელში UTF-8, ყველაფერი ისე უნდა მუშაობდეს, როგორც უნდა.

Უნდა. სამწუხაროდ, ყველა ბრაუზერი და მოწყობილობა არ უჭერს მხარს უნიკოდის ყველა სიმბოლოს ერთნაირად (უფრო ზუსტად, ყველა შრიფტი არ უჭერს მხარს სიმბოლოების სრულ კომპლექტს). მაგალითად, ახლახან დამატებული emoji სიმბოლოები ყველგან არ არის მხარდაჭერილი.

UTF-8 მხარდაჭერისთვის HTML5-ში დაამატეთ (თუ არ გაქვთ წვდომა სერვერის პარამეტრებზე, ასევე უნდა დაამატოთ ). ძველი დოქტიპი იყენებს ( ).

ხატები

უნიკოდის გამოყენების მეორე მიზეზი არის ყოფნა დიდი რიცხვისასარგებლო სიმბოლოები, რომლებიც შეიძლება გამოყენებულ იქნას როგორც ხატები. მაგალითად, ≡ და.

მათი აშკარა პლიუსი ის არის, რომ თქვენ არ გჭირდებათ დამატებითი ფაილებირომ დაამატოთ ისინი გვერდზე, რაც ნიშნავს, რომ თქვენი საიტი უფრო სწრაფი იქნება. თქვენ ასევე შეგიძლიათ შეცვალოთ მათი ფერი ან დაამატოთ ჩამოსაშლელი ჩრდილი CSS-ის გამოყენებით. და გადასვლების დამატებით (css transition), შეგიძლიათ შეუფერხებლად შეცვალოთ ხატის ფერი, როდესაც მასზე გადახვევთ დამატებითი სურათების გარეშე.

ვთქვათ, მინდა შევიტანო ვარსკვლავის შეფასების მაჩვენებელი ჩემს გვერდზე. მე შემიძლია ასე გავაკეთო:

★ ★ ★ ☆ ☆

თქვენ მიიღებთ შემდეგ შედეგს:

მაგრამ თუ გაგიმართლათ, დაინახავთ მსგავს რაღაცას:

იგივე ნიშანი BlackBerry 9000-ზე

ეს ხდება იმ შემთხვევაში, თუ გამოყენებული სიმბოლოები არ არის ბრაუზერის ან მოწყობილობის შრიფტში (საბედნიეროდ, ეს ვარსკვლავი მშვენივრად არის მხარდაჭერილი და ძველია BlackBerry ტელეფონებიაქ ერთადერთი გამონაკლისია).

თუ უნიკოდის სიმბოლო არ არის, მის ადგილას შეიძლება იყოს სხვადასხვა სიმბოლო, ცარიელი კვადრატიდან (□) ბრილიანტამდე კითხვის ნიშნით (�).

როგორ პოულობთ უნიკოდის სიმბოლოს, რომელიც შეიძლება იმუშაოს თქვენს დიზაინზე? თქვენ შეგიძლიათ მოძებნოთ ის საიტზე, როგორიცაა Unicodinator, არსებული სიმბოლოების დათვალიერებით, მაგრამ ასევე არსებობს საუკეთესო გზა... - ეს შესანიშნავი საიტი საშუალებას გაძლევთ დახატოთ თქვენთვის სასურველი ხატი და შემდეგ შემოგთავაზოთ მსგავსი უნიკოდის სიმბოლოების სია.

Unicode-ის გამოყენება @ font-face ხატებით

თუ იყენებთ ხატულებს, რომლებიც უკავშირდებიან გარე შრიფტს @ font-face-ის საშუალებით, უნიკოდის სიმბოლოები შეიძლება გამოყენებულ იქნას როგორც დასაბრუნებელი. ამ გზით თქვენ შეგიძლიათ აჩვენოთ მსგავსი Unicode სიმბოლო მოწყობილობებზე ან ბრაუზერებზე, სადაც @ font-face არ არის მხარდაჭერილი:

მარცხნივ არის შრიფტის გასაოცარი ხატები Chrome-ში, ხოლო მარჯვნივ არის მათი Unicode ჩანაცვლება Opera Mini-ში.

მრავალი @ შრიფტის-სახის შესატყვისი ხელსაწყო იყენებს უნიკოდის სიმბოლოების მთელ რიგს პირადი გამოყენების ზონიდან. ამ მიდგომის პრობლემა ის არის, რომ თუ @ font-face არ არის მხარდაჭერილი, სიმბოლოების კოდები გადაეცემა მომხმარებელს ყოველგვარი მნიშვნელობის გარეშე.

შესანიშნავია @ font-face-ში ხატულების ნაკრების შესაქმნელად და საშუალებას გაძლევთ აირჩიოთ შესაფერისი უნიკოდის სიმბოლო, როგორც ხატის საფუძველი.

მაგრამ გაფრთხილება - ზოგიერთ ბრაუზერს და მოწყობილობას არ მოსწონს უნიკოდის ინდივიდუალური სიმბოლოები @ font-face-თან გამოყენებისას. აზრი აქვს Unicode-ის სიმბოლოების მხარდაჭერის ტესტირებას Unify-ით - ეს აპი დაგეხმარებათ განსაზღვროთ რამდენად უსაფრთხოა სიმბოლოების გამოყენება @ font-face ხატულაკრებში.

Unicode სიმბოლოების მხარდაჭერა

უნიკოდის სიმბოლოების გამოყენებასთან დაკავშირებული მთავარი პრობლემა არის ცუდი მხარდაჭერა ეკრანის მკითხველებში (კიდევ ერთხელ, ამის შესახებ გარკვეული ინფორმაცია შეგიძლიათ ნახოთ Unify-ზე), ამიტომ მნიშვნელოვანია გულდასმით აირჩიოთ სიმბოლოები, რომლებსაც იყენებთ.

თუ თქვენი ხატულა არის მხოლოდ დეკორატიული ელემენტი ტექსტის ეტიკეტის გვერდით, რომელიც იკითხება ეკრანის წამკითხველის მიერ, თქვენ არ გჭირდებათ ზედმეტი ფიქრი. მაგრამ თუ ხატულა თავისთავად არის, ღირს დამალული ტექსტის ლეიბლის დამატება ეკრანის წამკითხველის მომხმარებლების დასახმარებლად. მაშინაც კი, თუ უნიკოდის სიმბოლოს წაიკითხავს ეკრანის მკითხველი, არის შანსი, რომ ის ძალიან განსხვავდებოდეს მისი დანიშნულებისგან. მაგალითად, ≡ (≡) როგორც ჰამბურგერის ხატულა წაიკითხება როგორც „იდენტური“ VoiceOver-ის მიერ iOS-ზე.

Unicode CSS კლასის სახელებში

ის ფაქტი, რომ Unicode შეიძლება გამოყენებულ იქნას კლასების სახელებში და სტილის ფურცლებში, ცნობილია 2007 წლიდან. სწორედ მაშინ ჯონათან სნუკმა დაწერა უნიკოდის სიმბოლოების გამოყენების შესახებ დამხმარე კლასებში მომრგვალებული კუთხეების აკრეფისას. ამ იდეას დიდი გავრცელება არ მიუღია, მაგრამ ღირს ვიცოდეთ უნიკოდის გამოყენების შესაძლებლობის შესახებ კლასების სახელებში (სპეციალური სიმბოლოები ან კირილიცა).

შრიფტის შერჩევა

რამდენიმე შრიფტი მხარს უჭერს უნიკოდის სიმბოლოების სრულ კომპლექტს, ამიტომ შრიფტის არჩევისას დარწმუნდით, რომ შეამოწმეთ თქვენთვის სასურველი სიმბოლოები.

უამრავი ხატულა Segoe UI Symbol-ში ან Arial Unicode MS-ში. ეს შრიფტები ხელმისაწვდომია როგორც PC-ზე, ასევე Mac-ზე; ლუსიდა გრანდეს ასევე აქვს საკმაოდ ბევრი Unicode სიმბოლო. თქვენ შეგიძლიათ დაამატოთ ეს შრიფტები შრიფტების ოჯახის დეკლარაციაში, რათა უზრუნველყოთ უნიკოდის სიმბოლოების მაქსიმალური რაოდენობა ხელმისაწვდომი მომხმარებლებისთვის, რომლებსაც აქვთ დაინსტალირებული ეს შრიფტები.

Unicode-ის მხარდაჭერის განსაზღვრა

კარგი იქნებოდა, რომ შეგეძლოთ უნიკოდის კონკრეტული სიმბოლოს არსებობის შემოწმება, მაგრამ ამის გარანტირებული გზა არ არსებობს.

უნიკოდის სიმბოლოები შეიძლება ეფექტური იყოს მხარდაჭერით. მაგალითად, თემის სტრიქონში არსებული emoji განასხვავებს მას დანარჩენისგან საფოსტო ყუთი.

დასკვნა

ეს სტატია მოიცავს მხოლოდ უნიკოდის საფუძვლებს. იმედი მაქვს, რომ დაგეხმარება უნიკოდის უკეთ გაგებაში და ეფექტურად გამოყენებაში.

ბმულების სია

  • (Unicode საფუძველზე @ font-face iconset გენერატორი)
  • Shape Catcher (უნიკოდის სიმბოლოების ამოცნობის ინსტრუმენტი)
  • უნიკოდინატორი (უნიკოდის სიმბოლოების ცხრილი)
  • Unify (შეამოწმეთ Unicode სიმბოლოების მხარდაჭერა ბრაუზერებში)
  • Unitools (ინსტრუმენტების კოლექცია Unicode-თან მუშაობისთვის)