Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Linux ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 127

Автор ΠΡ€Π½ΠΎΠ»ΡŒΠ΄ Роббинс

# This file is distributed under the same license as the PACKAGE package.

# FIRST AUTHOR < [email protected]>, YEAR.

#

#, fuzzy

msgid "" /* ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ информация */

msgstr "" /* ЗаполняСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ */

"Project-Id-Version: PACKAGE VERSION\n"

"Report-Msgid-Bugs-To: \n"

"POT-Creation-Date: 2003-07-14 18:46-0700\n"

"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"

"Last-Translator: FULL NAME < [email protected]>\n"

"Language-Team: LANGUAGE < [email protected]>\n"

"MIME-Version: 1.0\n"

"Content-Type: text/plain; charset=CHARSET\n"

"Content-Transfer-Encoding: 8bit\n"


#: ch13-echodate.c:19 /* ΠœΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ сообщСния */

msgid "Enter a Date/time as YYYY/MM/DD HH:MM:SS : " /* ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅

                                                       сообщСниС */

msgstr "" /* Π—Π΄Π΅ΡΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ */


#: ch13-echodate.с:32 /* To ΠΆΠ΅ самоС для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сообщСния */

#, с-format

msgid "Got: %s"

msgstr ""

Π­Ρ‚ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, это шаблон для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ², ΠΈ ΠΏΠΎ соглашСнию, для отобраТСния этого Ρ„Π°ΠΊΡ‚Π° ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .pot (portable object template β€” пСрСносимый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ шаблон):

$ mv echodate.Ρ€ΠΎ echodate.pot

He владСя свободно нСсколькими языками, ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ пСрСвСсти сообщСния Π½Π° свинский латинский. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом являСтся созданиС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°. Π­Ρ‚ΠΎ осущСствляСтся ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π° шаблона ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°:

$ cp echodate.pot piglat.po

$ vi piglat.po /* Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ */

Имя ΠΏΠΎ соглашСнию Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ язык.po, Π³Π΄Π΅ язык являСтся стандартным ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹ΠΌ сокращСниСм ΠΈΠ· Π΄Π²ΡƒΡ… ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Ρ… Π±ΡƒΠΊΠ² для обозначСния языка. Иногда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠ° язык_страна.po: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, pt_BR.po для ΠΏΠΎΡ€Ρ‚ΡƒΠ³Π°Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π² Π‘Ρ€Π°Π·ΠΈΠ»ΠΈΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ свинский латинский Π½Π΅ являСтся настоящим языком, ΠΌΡ‹ Π½Π°Π·Π²Π°Π»ΠΈ Ρ„Π°ΠΉΠ» piglat.Ρ€ΠΎ.[147] Π’ΠΎΡ‚ содСрТаниС послС добавлСния ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°:

# echodate translations into pig Latin

# Copyright (C) 2004 Prentice-Hall

# This file is distributed under the same license as the echodate package.

# Arnold Robbins < [email protected]> 2004

#

#, fuzzy

msgid ""

msgstr ""

"Project-Id-Version: echodate 1.0\n"

"Report-Msgid-Bugs-To: [email protected]\n"

"POT-Creation-Date: 2003-07-14 18:46-0700\n"

"PO-Revision-Date: 2003-07-14 19:00+8\n"

"Last-Translator: Arnold Robbins < [email protected]>\n"

"Language-Team: Pig Latin < [email protected]>\n"

"MIME-Version: 1.0\n"

"Content-Type: text/plain; charset=ASCII\n"

"Content-Transfer-Encoding: 8bit\n"


#: ch13-echodate.с:19

msgid "Enter a Date/time as YYYY/MM/DD HH:MM:SS : "

msgstr "Enteray A Ateday/imetay asay YYYY/MM/DD HH:MM:SS : "


#: ch13-echodate.c:32

#, c-format

msgid "Got: %s"

msgstr "Otgay: %s"

Π₯отя ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ произвСсти Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ поиск Π² пСрСносимом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, Ρ‚Π°ΠΊΠΎΠΉ поиск Π±Ρ‹Π» Π±Ρ‹ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ. НапримСр, Π² gawk имССтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 350 ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… сообщСний, Π° Π² GNU Coreutils β€” ΡΠ²Ρ‹ΡˆΠ΅ 670. Π›ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ поиск Π² Ρ„Π°ΠΉΠ»Π΅ с сотнями сообщСний Π±Ρ‹Π» Π±Ρ‹ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ GNU gettext ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для быстрого поиска сообщСний Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ осущСствляСт msgfmt, выдавая ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» сообщСний:

$ msgfmt piglat.po -ΠΎ piglat.mo

ΠŸΡ€ΠΈ сопровоТдСнии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ строки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ: Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ. По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ строки Π² исходном Ρ„Π°ΠΉΠ»Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ² .Ρ€ΠΎ, вСроятно, ΡƒΡΡ‚Π°Ρ€Π΅ΡŽΡ‚. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° msgmerge ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ старыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ² с Π½ΠΎΠ²Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ .pot. Π—Π°Ρ‚Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ выполняСт объСдинСниС ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅:

$ msgmerge piglat.po echodate.pot -o piglat.new.po /* ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ */

$ mv piglat.new.po piglat.po /* ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ */

$ vi piglat.po /* ΠœΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ */

$ msgfmt piglat.po -o piglat.mo /* Π’ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» .mo */

ΠžΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ .mo ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ» base/locale/category/textdomain.mo. На систСмах GNU/Linux base являСтся /usr/share/locale. locale являСтся ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ языка, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 'es', 'fr' ΠΈ Ρ‚.Π΄. category являСтся ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΠΈ; для сообщСний это LC_MESSAGES. textdomain являСтся тСкстовым Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² нашСм случаС это echodate. Π’ качСствС Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² /usr/share/locale/es/LC_MESSAGES/coreutils.mo находится ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ GNU Coreutils Π½Π° испанский.

Ѐункция bindtextdomain() измСняСт Π² мСстополоТСнии Ρ‡Π°ΡΡ‚ΡŒ base. Π’ ch13-echodate.c ΠΌΡ‹ мСняСм Π΅Π΅ Π½Π° '.'. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π½Π° свинский латинский:

$ mkdir -Ρ€ en_US/LC_MESSAGES /* НуТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ локаль */

$ cp piglat.mo en_US/LC_MESSAGES/echodate.mo /* ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π² Π½ΡƒΠΆΠ½ΠΎΠ΅ мСсто */

Π”ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π΅Π°Π»ΡŒΠ½Π°Ρ локаль[148]; ΠΌΡ‹ «притворяСмся» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ "en_US". РазмСстив ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄, устанавливаСм ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ LC_ALL, скрСщиваСм ΠΏΠ°Π»ΡŒΡ†Ρ‹ ΠΈ запускаСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ:

$ LC_ALL=en_US ch13-echodate /* Запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ */

Enteray A Ateday/imetay asay YYYY/MM/DD HH:MM:SS : 2003/07/14 21:19:26

Otgay: Mon Jul 14 21:19:26 2003

ПослСднюю Π²Π΅Ρ€ΡΠΈΡŽ GNU gettext ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ дистрибутива GNU gettext.[149]

Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π» лишь слСгка коснулся повСрхности процСсса Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. GNU gettext прСдоставляСт мноТСство инструмСнтов для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°ΠΌΠΈ, ΠΈ Π² особСнности для облСгчСния поддСрТания соврСмСнности ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ развития исходного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΎΡ†Π΅ΡΡ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ обновлСния ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ² осущСствим, Π½ΠΎ ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»Π΅Π½. Π­Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° Π»Π΅Π³ΠΊΠΎ автоматизируСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ make; Π² частности, GNU gettext Ρ…ΠΎΡ€ΠΎΡˆΠΎ интСгрируСтся для обСспСчСния этой возмоТности с Autoconf ΠΈ Automake, снимая с программиста Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π³Ρ€ΡƒΠ· ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ GNU gettext, Ρ‡Ρ‚ΠΎΠ±Ρ‹ большС ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ± этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… Π² частности, Ρ‚Π°ΠΊ ΠΈ ΠΎ GNU gettext Π² ΠΎΠ±Ρ‰Π΅ΠΌ.

13.4. НС ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π²Ρ‹ произнСсти это для мСня ΠΏΠΎ Π±ΡƒΠΊΠ²Π°ΠΌ?

Π’ самыС Ρ€Π°Π½Π½ΠΈΠ΅ Π΄Π½ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы Π½Π°Π·Π½Π°Ρ‡Π°Π»ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ соотвСтствия ΠΌΠ΅ΠΆΠ΄Ρƒ числовыми значСниями ΠΈ Π³Π»ΠΈΡ„Π°ΠΌΠΈ (glyphs) β€” символами, Ρ‚Π°ΠΊΠΈΠΌΠΈ, ΠΊΠ°ΠΊ Π±ΡƒΠΊΠ²Ρ‹, Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈ Π·Π½Π°ΠΊΠΈ ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ для общСния с людьми. Π’ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счСтС появились Π΄Π²Π° ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ…ΡΡ стандарта: ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° EBCDIC, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ IBM ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ Π΅ΠΉ мэйнфрСймами, ΠΈ ASCII, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°ΡΡΡ для всСго ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ. БСгодня, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ мэйнфрСймов, ASCII являСтся основой для всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ…ΡΡ Π½Π°Π±ΠΎΡ€ΠΎΠ² символов.

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ сСмиразрядный Π½Π°Π±ΠΎΡ€ символов ASCII достаточСн для амСриканского английского ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π·Π½Π°ΠΊΠΎΠ² ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΠΈ ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов (Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ $, Π½ΠΎ Π½Π΅Ρ‚ символа для Β«Ρ†Π΅Π½Ρ‚Π°Β»). Однако, имССтся ΠΌΠ½ΠΎΠ³ΠΎ языков ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ стран, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½Π°Π±ΠΎΡ€Ρ‹ символов. ASCII Π½Π΅ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ вСрсиями романских символов с надстрочными Π·Π½Π°Ρ‡ΠΊΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈΡΡ Π² Π•Π²Ρ€ΠΎΠΏΠ΅, Π° Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… азиатских языках тысячи символов. Для устранСния этих нСдостатков Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.

Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π° ΠΏΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΎΠ±ΠΈΠ»ΡƒΠ΅Ρ‚ ссылками Π½Π° Ρ‚Ρ€ΠΈ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ² ΠΈΡ… ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, ΠΌΡ‹ смоТСм ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ описаниС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ API Π‘.

Набор символов (character set)

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, присваиваСмых Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Ρ†Π΅Π»Ρ‹ΠΌ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°ΠΌ; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ A Ρ€Π°Π²Π½ΠΎ 65. Π›ΡŽΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ€ символов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π±ΠΎΠ»Π΅Π΅ восьми Π±ΠΈΡ‚ΠΎΠ² Π½Π° символ, называСтся ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ символов.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡ€Π° символов (character set encoding)

ASCII ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для прСдставлСния символов ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ хранится само ΠΏΠΎ сСбС, нСпосрСдствСнно Π² дисковых Ρ„Π°ΠΉΠ»Π°Ρ…. Π‘ΠΎΠ»Π΅Π΅ соврСмСнныС Π½Π°Π±ΠΎΡ€Ρ‹ символов, особСнно Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ вСрсии Unicode[150], ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для прСдставлСния символов 16-разрядныС ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ 32-разрядныС Ρ†Π΅Π»Ρ‹Π΅ значСния. Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… символов ΠΎΠ΄ΠΈΠ½, Π΄Π²Π° ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Ρ‚Ρ€ΠΈ ΡΡ‚Π°Ρ€ΡˆΠΈΡ… Π±Π°ΠΉΡ‚Π° Ρ†Π΅Π»ΠΎΠ³ΠΎ значСния Ρ€Π°Π²Π½Ρ‹ Π½ΡƒΠ»ΡŽ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ нСпосрСдствСнноС Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π° дискС нСэффСктивным. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡ€Π° символов описываСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ для прСобразования 16- ΠΈΠ»ΠΈ 32-разрядных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎ ΡˆΠ΅ΡΡ‚ΠΈ Π±Π°ΠΉΡ‚ΠΎΠ² для сохранСния Π½Π° дискС Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ экономия дисковой памяти.

Π―Π·Ρ‹ΠΊ

ΠŸΡ€Π°Π²ΠΈΠ»Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ языка ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ использованиС Π½Π°Π±ΠΎΡ€Π° символов. Π’ частности, ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²Π»ΠΈΡΡŽΡ‚ Π½Π° сортировку символов. НапримСр, Π½Π° французском Π΅, Γ© ΠΈ Γ¨ всС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ d ΠΈ f, нСзависимо ΠΎΡ‚ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… этим символам числовых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ языки ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ (ΠΈ Π½Π°Π·Π½Π°Ρ‡Π°ΡŽΡ‚) ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ Π³Π»ΠΈΡ„Π°ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΉ порядок сортировки.