понедельник, 31 мая 2010 г.

Я лучше буду называть его разделителем пути

Это перевод I'd rather call it the path separator. Автор: Майкл Каплан.

Я говорю об обратном слэше, 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+00A2CENT SIGN*
U+00A3POUND SIGN
U+00A4¤CURRENCY SIGN
U+00A5¥YEN SIGN
U+09F2BENGALI RUPEE MARK
U+09F3BENGALI RUPEE SIGN
U+0E3F฿THAI CURRENCY SYMBOL BAHT
U+17DBKHMER CURRENCY SYMBOL RIEL*
U+20A0EURO-CURRENCY SIGN
U+20A1COLON SIGN
U+20A2CRUZEIRO SIGN
U+20A3FRENCH FRANC SIGN
U+20A4LIRA SIGN
U+20A5MILL SIGN*
U+20A6NAIRA SIGN
U+20A7PESETA SIGN
U+20A8RUPEE SIGN
U+20A9WON SIGN
U+20AANEW SHEQEL SIGN
U+20ABDONG SIGN
U+20ACEURO SIGN
U+20ADKIP SIGN
U+20AETUGRIK SIGN
U+20AFDRACHMA SIGN
U+20B0GERMAN PENNY SIGN
U+20B1PESO SIGN
U+FDFCRIAL SIGN*
U+FE69SMALL DOLLAR SIGN*
U+FF04FULLWIDTH DOLLAR SIGN*
U+FFE0FULLWIDTH CENT SIGN*
U+FFE1FULLWIDTH POUND SIGN*
U+FFE5FULLWIDTH YEN SIGN*
U+FFE6FULLWIDTH 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" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.