Про обратный слэш
2013-06-11 19:03Продолжаем рубрику «Символы, которых не должно быть в хорошо свёрстанном тексте, не посвящённом языкам программирования и разметки». Сегодняшний наш гость — U+005C Backslash (\
).
Как таковой этот символ был добавлен в таблицу ASCII для того, чтобы программисты на Алголе могли писать значки конъюнкции ∧
и дизъюнкции ∨
как /\
и \/
соответственно. Естественно, с внедрением Юникода эта причина перестала быть актуальной (правильно писать U+2227 Logical And и U+2228 Logical Or). Также в Юникоде есть отдельный символ для вычитания множеств — ∖
(U+2216 Set Minus).
В русской раскладке клавиатуры Microsoft’овского образца бэкслэш и прямой слэш находятся на одной клавише, но прямой слэш требует нажатия с Shift’ом. Это, по всей видимости, сделано из-за того, что бэкслэш часто нужен при наборе путей к файлам в DOS и Windows (а это, в свою очередь, из-за того, что, когда делали DOS, было важно соблюсти обратную совместимость с CP/M, а там прямой слэш был занят под ключи командной строки, поэтому путям достался ближайший похожий незанятый символ; а когда делали Windows, было важно соблюсти обратную совместимость с DOS; см. также анекдот про ширину двигателя Шаттла).
Бэкслэш получил широкое распространение в языках программирования как экранирующий символ, вводящий специальные символы — \n
, \t
, \"
— и в TeX’е для макросов, весьма вероятно именно потому, что в обычном тексте не встречается.
Писать интернет-адреса через бэкслэш неправильно, грамматика URL’а не допускает этого символа.
This entry was originally posted at http://yurikhan.dreamwidth.org/55389.html.Символы `
, '
и "
не должны встречаться в хорошо свёрстанных текстах, кроме как в контексте обсуждения языков программирования и разметки. Они остались нам в наследство от пишущих машинок, когда из-за технических ограничений старались минимизировать количество разных символов в шрифте. (В типографских машинах такого ограничения не было, поэтому ни в одной книге, отпечатанной в докомпьютерную эру, вы не найдёте подобных ошибок.)
Вот несколько сценариев, в которых люди используют эти символы в англо- и русскоязычных текстах (в греческом, французском, вьетнамском всё несколько сложнее за счёт большего количества диакритических знаков):
- Апостроф. Ужасно: Traveler`s Coffee. Плохо: Traveler's Coffee. Правильно: Traveler’s Coffee. Символ — U+2019 Right single quotation mark.
- Транслитерация мягкого знака. База данных символов Unicode говорит, что для этой цели отлично подходит символ U+02B9 Modifier letter prime. Novosibirsk, ul. Uchitelʹskaya.
- Кавычки. Плохо: `одинарные', "двойные", ``двойные одинарные''. Хорошо: ‘одинарные’, “двойные”, „лапки“, «ёлочки». U+2018 Left single quotation mark, U+2019 Right single quotation mark, U+201C Left double quotation mark, U+201D Right double quotation mark, U+201E Double low-9 quotation mark, U+00AB Left-pointing double angle quotation mark, U+00BB Right-pointing double angle quotation mark.
- Футы, дюймы, секунды и минуты; штрих и два штриха. Плохо: 4'33". Хорошо: 4′33″. U+2032 Prime, U+2033 Double prime.
- Диакритические знаки. Плохо: бо'льшая часть. Хорошо: бо́льшая часть. U+0301 Combining acute accent; в иностранных словах также U+0300 Combining grave accent и другие языкоспецифичные диакритики. Диакритические знаки «надеваются» на предшествующую им букву, а не на последующую, что бы по этому поводу ни думали разработчики шрифтов. Неправильно использовать готовые латинские буквы с акутом вместо русских с ударением. Плохо: длúнный, хорошо: дли́нный.
ftp encoding issues
2008-02-14 02:31Есть система-клиент, со своими понятиями о том, какая должна быть везде кодировка (соответственно UCS-2LE на винде или UTF-8 на Linux’е). Есть кривой ftp-сервер, работающий в KOI8-R (ShiftJIS, другой кодировке XX века). Как заставить wget (curl, другую качалку, способную работать на линуксовом сервере без гуя) выкачать с этого сервера файлы с кириллицей (иероглифами, эльфийскими рунами, клингонским pIqaD) в именах, так, чтобы они разложились в файловую систему клиента в правильном виде?
Отвечаю сам себе:
$ sudo apt-get install lftp
set ftp:charset koi8-r
open ftp.example.tld
mirror "/pub/где" "куда"
$ lftp -f get.lftp