Полноширинные и полуширинные символы
ABC123 и ABC123 выглядят почти одинаково, но для компьютера это разные символы. Это руководство объясняет, откуда взялись полноширинные (full-width) и полуширинные (half-width) символы, почему на них спотыкаются формы и поиск, как полуширинная катакана записывает ガ двумя символами и какие похожие знаки вовсе не образуют пару.
Почему ширины две
В японских, китайских и корейских текстах каждый знак занимает квадратную клетку. У первых японских компьютеров было два вида наборов символов: однобайтовый JIS X 0201 с латинскими буквами, цифрами и небольшим набором катаканы, занимавшей полклетки, и двухбайтовые, такие как JIS X 0208, с иероглифами, каной и второй копией букв и цифр на всю клетку. Корейский стандарт KS X 1001 тоже содержит полноширинную копию латинского алфавита.
Unicode сохранил обе копии, чтобы старые тексты можно было преобразовать без потерь. Полноширинные формы символов ASCII (U+FF01–FF5E) и полуширинная катакана (U+FF61–FF9F) находятся в блоке «Halfwidth and Fullwidth Forms», а база данных символов Unicode указывает, какому обычному символу соответствует каждый. Именно это использует конвертер.
У каких символов есть полноширинная и полуширинная форма
| Вид | Полноширинные | Полуширинные |
|---|---|---|
| Латинские буквы | ABC abc | ABC abc |
| Цифры | 0123 | 0123 |
| Знаки ASCII | !?@#()-/ | !?@#()-/ |
| Пробел | U+3000 (идеографический пробел) | U+0020 |
| Знаки валют и др. | ¥ ¢ £ | ¥ ¢ £ |
| Катакана | カタカナ ガ パ | カタカナ ガ パ |
| Японская пунктуация | 。「」、・ー | 。「」、・ー |
У иероглифов, хираганы и слогов хангыля только одна ширина. Полуширинной хираганы нет, как нет полуширинной формы и у маленьких ヵ, ヶ, ヮ и старых знаков ヰ и ヱ. Кириллица в этом блоке не представлена.
Где разница создаёт проблемы
- Формы. Поле, которое принимает только цифры, отклонит 090, а индекс или номер карты, скопированный с японского сайта, часто оказывается полноширинным. Преобразование в полуширинные символы решает проблему.
- Поиск и дубликаты. Поиск ABC не всегда находит ABC, а в списке клиентов одно и то же имя может оказаться дважды в двух ширинах.
- Внешний вид. Полноширинные буквы в русском тексте выглядят разреженными, полуширинная катакана в японском тексте — сжатой.
- Системы со своими правилами. Одни японские формы требуют чтение имени (フリガナ) полноширинной катаканой, другие — хираганой, а некоторые старые системы принимают только полуширинную катакану. Следуйте указаниям формы.
Полуширинная катакана и знаки озвончения
В полуширинной катакане нет отдельных звонких букв. ガ записывается двумя символами — カ и знаком озвончения ゙, а パ — ハ и знаком ゚. Хороший конвертер соединяет пару в одну полноширинную букву и снова разделяет её при обратном преобразовании. Поэтому число символов меняется: в ガッコウ пять символов, в ガッコウ четыре.
Знак, который не может соединиться с предыдущей буквой, как в ア゙, остаётся отдельным (ア゛). ヴ становится ヴ, а ヷ и ヺ — ヷ и ヺ.
Похожие символы, которые не образуют пару
| Символ | Что это | Есть полуширинная пара? |
|---|---|---|
| ~ (U+FF5E) | Полноширинная тильда | Да: ~ |
| 〜 (U+301C) | Волнистое тире, японский знак препинания | Нет |
| - (U+FF0D) | Полноширинный дефис-минус | Да: - |
| ー (U+30FC) | Знак долготы в катакане | Только ー (полуширинная катакана) |
| " ' | Полноширинные прямые кавычки | Да: " ' |
| « » “ ” | Типографские кавычки | Нет |
Обратная косая черта — особый случай. В JIS X 0201 на месте, где в ASCII стоит обратная косая черта, был знак иены, поэтому некоторые японские шрифты до сих пор рисуют её как ¥. Символ тот же, отличается только изображение.
Хирагана и катакана
У каждого знака хираганы от ぁ до ゖ есть знак катаканы с тем же названием, и Unicode располагает их ровно в 96 позициях друг от друга, поэтому преобразование точное: やまだ たろう становится ヤマダ タロウ. Знак долготы ー используется в обеих азбуках и не меняется. Знаки катаканы без пары в хирагане, например ヷ, остаются катаканой.
Программистам: нормализация меняет больше
Форма нормализации Unicode NFKC тоже делает полноширинные буквы полуширинными и соединяет ガ в ガ, но одновременно меняет многие другие символы: ① становится 1, № — No, ㈱ — (株), а ㍻ — 平成. Используйте её, когда вам нужно всё это, например для сравнения поисковых ключей. Чтобы изменить только ширину, преобразуйте лишь пары по ширине и оставьте остальное как есть.
Частые вопросы
Почему форма считает мой номер неверным, хотя он выглядит правильно?
Скорее всего, в нём полноширинные цифры, скопированные с другой страницы. Пропустите его через конвертер с режимом «Полуширинные» и вставьте снова.
Меняются ли иероглифы при переводе в полуширинные символы?
Нет. У иероглифов, хираганы и хангыля нет полуширинной формы, они остаются без изменений.
Идеографический пробел равен двум пробелам?
Нет. Это один символ (U+3000) шириной в иероглиф. После преобразования получается один обычный пробел, а не два.
Почему японская форма не принимает мою катакану?
Возможно, она ждёт полноширинную катакану, а вы ввели полуширинную, или наоборот, либо не принимает маленькие знаки вроде ァ и ッ. Прочитайте подсказку у поля.