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

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

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

$ <b>msgfmt piglat.po -ΠΎ piglat.mo</b>

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

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

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

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

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

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

ΠžΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹

.mo
ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ»
<i>base</i>/<i>locale</i>/category/<i>textdomain</i>.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
ΠΌΡ‹ мСняСм Π΅Π΅ Π½Π° '
.
'. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π½Π° свинский латинский:

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

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

Π”ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π΅Π°Π»ΡŒΠ½Π°Ρ локаль [148]; ΠΌΡ‹ «притворяСмся» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ "

en_US
". РазмСстив ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄, устанавливаСм ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ
LC_ALL
, скрСщиваСм ΠΏΠ°Π»ΡŒΡ†Ρ‹ ΠΈ запускаСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ:

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

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, нСзависимо ΠΎΡ‚ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… этим символам числовых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ языки ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ (ΠΈ Π½Π°Π·Π½Π°Ρ‡Π°ΡŽΡ‚) ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ Π³Π»ΠΈΡ„Π°ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΉ порядок сортировки.

Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚Π½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² символов Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ стрСмится ΠΊ Unicode ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π΅Π³ΠΎ прСдставлСниям, Π½ΠΎ стандартный Π‘ ΠΈ POSIX ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΊΠ°ΠΊ старыС, Ρ‚Π°ΠΊ ΠΈ соврСмСнныС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ прСдставлСн ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Π·ΠΎΡ€ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… возмоТностСй. Нам самим Π½Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, поэтому ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌ просто ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒ с Π½ΠΈΠΌΠΈ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ссылки Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

13.4.1. Π¨ΠΈΡ€ΠΎΠΊΠΈΠ΅ символы

ΠœΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ с ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΈΡ… символов (wide character). Π¨ΠΈΡ€ΠΎΠΊΠΈΠΉ символ являСтся Ρ†Π΅Π»Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° символов.