Я говорю об обратном слэше, U+005c (также известным для некоторых как бэк-слэш).
Он также известен как "тук" (whack) для других (когда эти люди говорят о UNC путях, они говорят 'тук-тук servername', когда они имеют ввиду \\servername).
Я уверен, что вы знаете и другие имена.
Хотя, если вы сидите в Windows с корейской локалью, то у вас есть другое имя для него - символ Won (я говорил об этом тут).
И если вы сидите в Windows с японской локалью, то у вас есть и другое имя для него - символ Yen (а об этом я говорил тут).
Причина?
Ну, Ларри Остерман говорил в Июне о том, почему разделитель файловых путей в DOS стал '\'.
Однако, в стандартах JIS и KSC #$5C - это место для Yen и Won. И не похоже, чтобы у вас были системы без файловых разделителей, потому что она запущена в японской или корейской конфигурации, верно?
Так что в кодовой странице 932, #$5C (YEN SIGN) обязан иметь круговое проецирование на U+005c (REVERSE SOLIDUS), с уже просто проецированием на U+00a5 (YEN SIGN).
А в кодовой странице 949, #$5C (WON SIGN) обязан иметь двустороннее проецирование на U+005c (REVERSE SOLIDUS), с простым проецированием на U+20a9 (WON SIGN).
В обоих случаях, важность денег оказалась перекрыта важностью разделителя пути (это, кстати, ещё одна причина, почему стоит всегда использовать Unicode!).
Это всё всплыло вчера, когда в комментарии к моему посту Show me the [small]money, Yoshihiro Kawabata упомянул, что U+005c также принимался как денежная единица - он даже прошёлся по каждому символу в BMP (*), чтобы увидеть, что ещё работает в SQL Server как "currency-символ". Похоже, что они в самом деле добавили ещё больше currency-символов в SQL Server 2005, хотя документация не совсем сходится со списком. Вот табличка с добавлениями:
Кодовая точка | Символ | Имя | Добавлен в SQL 2005 |
---|---|---|---|
U+0024 | $ | DOLLAR SIGN | |
U+005C | \ | REVERSE SOLIDUS | |
U+00A2 | ¢ | CENT SIGN | * |
U+00A3 | £ | POUND SIGN | |
U+00A4 | ¤ | CURRENCY SIGN | |
U+00A5 | ¥ | YEN SIGN | |
U+09F2 | ৲ | BENGALI RUPEE MARK | |
U+09F3 | ৳ | BENGALI RUPEE SIGN | |
U+0E3F | ฿ | THAI CURRENCY SYMBOL BAHT | |
U+17DB | ៛ | KHMER CURRENCY SYMBOL RIEL | * |
U+20A0 | ₠ | EURO-CURRENCY SIGN | |
U+20A1 | ₡ | COLON SIGN | |
U+20A2 | ₢ | CRUZEIRO SIGN | |
U+20A3 | ₣ | FRENCH FRANC SIGN | |
U+20A4 | ₤ | LIRA SIGN | |
U+20A5 | ₥ | MILL SIGN | * |
U+20A6 | ₦ | NAIRA SIGN | |
U+20A7 | ₧ | PESETA SIGN | |
U+20A8 | ₨ | RUPEE SIGN | |
U+20A9 | ₩ | WON SIGN | |
U+20AA | ₪ | NEW SHEQEL SIGN | |
U+20AB | ₫ | DONG SIGN | |
U+20AC | € | EURO SIGN | |
U+20AD | ₭ | KIP SIGN | |
U+20AE | ₮ | TUGRIK SIGN | |
U+20AF | ₯ | DRACHMA SIGN | |
U+20B0 | ₰ | GERMAN PENNY SIGN | |
U+20B1 | ₱ | PESO SIGN | |
U+FDFC | ﷼ | RIAL SIGN | * |
U+FE69 | ﹩ | SMALL DOLLAR SIGN | * |
U+FF04 | $ | FULLWIDTH DOLLAR SIGN | * |
U+FFE0 | FULLWIDTH CENT SIGN | * | |
U+FFE1 | FULLWIDTH POUND SIGN | * | |
U+FFE5 | FULLWIDTH YEN SIGN | * | |
U+FFE6 | FULLWIDTH WON SIGN | * |
(Заметьте, что, как я и говорил ранее, большинство символов валют всё ещё не в списке, несмотря на эти добавления!)
Я не собираюсь разбирать, почему я думаю, что эти особые отношения между U+005c, U+00a5 и U+20a9 кажутся не к месту, странными и неуклюжими, потому что я понимаю (если принять во внимание их историческую идентичность), почему они должны быть тут.
И я также понимаю, почему он оказался в волшебном списке вещей, которые принимаются за символы валют (в конце концов, клиенты должны иметь возможность добавлять денежные данные с корейских и японских не-unicode источников).
Учитывая, насколько мы, как компания, пытаемся действовать, как будто этот вопрос никогда не существовал, я даже могу понять, почему это поведение никогда не было документировано - потому что документация таких хаков выглядит как-то неудобно.
Так что я бы называл этот символ разделителем пути в Windows, поскольку это истинно на всех языковых конфигурациях, с которыми Windows работает. Это делает всю ситуацию гораздо проще концептуально...
This post brought to you by "\" (U+005c, a.k.a. REVERSE SOLIDUS)
Примечания переводчика:
(*) BMP - Basic Multilingual Plane (Базовая многоязыковая плоскость).
Комментариев нет:
Отправить комментарий
Можно использовать некоторые HTML-теги, например:
<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>
Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку.
Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.
Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.
Примечание. Отправлять комментарии могут только участники этого блога.