Цифры, которые мы используем ежедневно, — это лишь одна из множества систем записи чисел, существующих в мире. Привычные нам «арабские» цифры на самом деле пришли из Индии, а их современный вид сформировался в арабскомфе и позже в Европе. Однако в Азии, на Ближнем Востоке и в Африке до сих пор применяются собственные графические системы, которые могут сбить с толку неподготовленного путешественника или программиста.
Понимание различий между системами счисления критически важно для локализации программного обеспечения, верстки многоязычных документов и работы с историческими источниками. В этой статье мы подробно разберём основные виды цифр, их визуальные отличия и области применения.
Арабские цифры: западный и восточный варианты
Под названием арабские цифры скрываются два принципиально разных набора глифов. Западноарабские (0–9) используются в Европе, Америке и большей части мира. Восточноарабские (٠–٩) распространены на Ближнем Востоке, в Иране, Пакистане и частично в Северной Африке. Хотя числовые значения идентичны, формы символов кардинально отличаются.
Например, нуль в восточном варианте выглядит как точка ٠, а единица — как вертикальная черта ١. Пятёрка ٥ напоминает сердечко, а шесть ٦ — перевёрнутую семерку. Эти отличия часто приводят к ошибкам при распознавании текста OCR-системами и при ручном вводе данных.
- 🌍 Западноарабские — стандарт Unicode U+0030–U+0039
- 🌙 Восточноарабские — блок Arabic-Indic U+0660–U+0669
- 📱 Расширенные восточноарабские (персидские/урду) — U+06F0–U+06F9
- 🔤 Кодовые точки отличаются, хотя визуально похожи
⚠️ Внимание: в персидском и урдю некоторые цифры (четвёрка, пять, шесть) имеют уникальные формы, отличные от классических восточноарабских. Не تخلпывайте их при верстке.
Индийские цифры и деванагари
Родина современной позиционной системы счисления — Древняя Индия. Цифры деванагари (०–९) используются в хинди, маратхи, непали и других языках на письме деванагари. Их формы стали прототипами для арабских цифр, но сохранили уникальную графику: например, двойка २ похожа на перевёрнутую латинскую «h», а три ३ — на греческую «ξ».
В Южной Индии применяются собственные системы: тамильские, телугу, каннада, малаялам. Они тоже произошли от брахми, но визуально сильно расходятся. Для корректного отображения необходимы шрифты с поддержкой соответствующих блоков Unicode.
- 🕉 Деванагари — U+0966–U+096F
- 🌴 Тамильские — U+0BE6–U+0BEF (нуль отсутствует, используется пустота или точка)
- 📜 Брахми — историческое письмо III в. до н.э., предок всех индийских систем
- 💡 Ноль как символ появился в Индии не ранее V в. н.э.
| Значение | Западноарабские | Восточноарабские | Деванагари | Тамильские |
|---|---|---|---|---|
| 0 | 0 | ٠ | ० | — |
| 1 | 1 | ١ | १ | ௧ |
| 5 | 5 | ٥ | ५ | ௫ |
| 9 | 9 | ٩ | ९ | ௯ |
Китайские и японские числовые системы
В Китае сосуществует три системы записи чисел: иероглифические (,, …), сучжоу — позиционная система с нулем, и финансовые — усложнённые иероглифы для защиты от подделки в банковских документах. Сучжоу-цифры (,, …) исторически использовались в торговле и бухгалтерии, сегодня встречаются на рынках и в традиционных календарях.
Япония заимствовала китайские иероглифы (кандзи) для чисел, но также использует две слоговые системы: хирагана и катакана для фонетической записи. В современном японском тексте часто смешивают арабские цифры (горизонтальная запись) и кандзи (вертикальная запись).
Особенности сучжоу-цифр
Сучежоу-цифры (Suzhou numerals) — это позиционная система с нулем, использовавшаяся в Китае с XIII по XX век. Они записываются вертикально, разряды идут сверху вниз. Цифры 1–3 имеют специальные знаки:,,. Для 4–9 используются модифицированные кандзи. Сегодня их можно встретить на ценниках в традиционных магазинах Гонконга и в старинных книгах.
⚠️ Внимание: финансовые иероглифы обязательны для чеков и договоров в Китае и Японии. Обычные кандзи (,, ) легко подделать добавлением черт.
Другие азиатские системы: тайские, кхмерские, монгольские
Юго-Восточная Азия представляет зоопарк уникальных цифровых систем. Тайские цифры (๐–๙) визуально напоминают деванагари, но имеют более округлые формы. Кхмерские (០–៩) — одни из самых старых в регионе, с характерными засечками. Монгольские (᠐–᠙) используются в традиционном вертикальном письме и отличаются от арабских прототипов.
Для разработчиков важно помнить: шрифты по умолчанию в ОС могут не содержать глифы для этих систем. При локализации интерфейсов необходимо явно указывать font-family с поддержкой соответствующих блоков Unicode.
☑️ Проверка поддержки азиатских цифр в проекте
- 🇹🇭 Тайские — U+0E50–U+0E59, используются в Таиланде параллельно с арабскими
- 🇰🇭 Кхмерские — U+17E0–U+17E9, официальные в Камбодже
- 🇲🇳 Монгольские — U+1810–U+1819, для традиционного письма
- 🇱🇦 Лаосские — U+0ED0–U+0ED9, близки к тайским
Исторические системы: римские, вавилонские, майя
Римские цифры (I, V, X, L, C, D, M) — аддитивная система без нуля и позиционности. Они до сих пор применяются для нумерации веков, глав книг, часов на циферблатах. Вавилонская сексагесимальная система (база 60) оставила след в измерении времени и углов. Система майя — вигесимальная (база 20) с нулем в виде раковины, уникальная для мезоамерики.
Эти системы не используются для вычислений, но встречаются в исторических текстах, эпиграфике и дизайне. Их правильная интерпретация требует знания контекста: например, римская «IV» означает 4, но на некоторых старинных часах пишут «IIII».
⚠️ Внимание: Римская система не имеет символа нуля, что делает невозможным запись пустого разряда и выполнение столбиковой арифметики.
Практическое значение: кодировка, шрифты и локализация
В современном IT основную роль играет стандарт Unicode, назначающий каждой цифре уникальную кодовую точку. Однако визуальное представление зависит от шрифта. Один и тот же символ U+0661 (восточноарабская единица) в шрифте Noto Sans Arabic и Amiri может выглядеть по-разному. Это критично для банковских приложений, где неверное отображение цифры ведёт к финансовым ошибкам.
При разработке многоязычных интерфейсов используйте dir="rtl" для языков с правого налево (арабский, персидский, урдю), но помните: числа внутри RTL-текста всё равно пишутся слева направо (LTR). Браузеры обрабатывают это через алгоритм Unicode Bidirectional Algorithm (UBA).
Всегда тестируйте числовые поля ввода с клавиатурами целевых локалей: виртуальные клавиатуры Android/iOS выдают разные наборы цифр в зависимости от системного языка.
Частые ошибки при работе с международными цифрами
Самая распространённая ошибка — жёсткое кодирование формата числа в коде (например, parseInt(str, 10) без учёта локали). Функции парсинга в JS, Python, Java ожидают западноарабские цифры. Если пользователь вводит восточноарабские или деванагари, парсинг упадёт с ошибкой или вернёт NaN.
Другая проблема — сортировка. Лексикографическая сортировка строк «1», «10», «2» даёт порядок 1, 10, 2. Для корректной работы нужен Intl.Collator с опцией numeric: true. Также не забывайте про разделители разрядов и десятичные знаки: в Европе запятая, в США точка, в некоторых арабских странах — момент (،).
Никогда не доверяйте ввод пользователя без нормализации: приведите все цифры к западноарабским (U+0030–U+0039) перед сохранением в БД или вычислениями.
FAQ: Частые вопросы о цифрах в разных странах
Почему арабские цифры называются арабскими, если они из Индии?
Система пришла в Европу через арабских математиков (аль-Хорезми, аль-Кинди) в XII–XIII вв. Европейцы назвали её «арабской» по пути распространения, хотя арабы сами называли её «индийской» (al-arqām al-hindiyya).
Есть ли у китайцев свой ноль?
Да, в сучжоу-системе ноль обозначается кружком (U+3007). В иероглифической записи нуля нет — разряды определяются позицией знаков. Финансовые иероглифы также не имеют нуля.
Можно ли смешивать цифры разных систем в одном тексте?
Технически Unicode позволяет, но это плохая практика. Смешивание ломает поиск, сортировку и доступность для скринридеров. Для каждого языка используйте его родную систему или единый стандарт (западноарабские) во всём документе.
Как ввести тайские цифры на обычной клавиатуре?
В Windows/Mac переключите раскладку на тайскую (Thai Kedmanee или Thai Pattachote). Цифры вводятся клавишами верхнего ряда с зажатым Shift или через специальную панель ввода. На мобильных — выберите тайскую клавиатуру в настройках.
Почему в некоторых шрифтах восточноарабские цифры выглядят иначе?
Существует два основных набора: стандартные восточноарабские (U+0660–U+0669) и расширенные (персидские/урду, U+06F0–U+06F9). Шрифты могут подменять глифы в зависимости от атрибута языка (lang="fa" vs lang="ar").