Правильный одиночный апостроф против апострофа?

Правая одинарная кавычка (U+2019) и апостроф (U+0027)

В чем разница между этими двумя персонажами?

Я столкнулся с этой проблемой, когда я использую CAtlString для загрузки строки из файла ресурсов, и в некоторых установках Windows LoadString дает сбой при попытке загрузить строку, содержащую U + 2019, но она работает в некоторых других установках Windows. Символ U+2019 появляется в строках моего файла ресурсов, который я скопировал из Word, а U+0027 появляется в строках, которые я закодировал вручную. Почему LoadString (иногда) задыхается от этого?


person TripShock    schedule 15.07.2011    source источник


Ответы (2)


В чем разница между этими двумя персонажами?

Спорный!

Судя по именам, можно предположить, что фигурная ‹’› используется только как кавычка, а прямая ‹’› используется только как настоящий апостроф, индикатор пропущенных букв.

Однако традиционная практика набора текста на английском языке всегда заключается в использовании фигурной ‹’› для передачи апострофа. Лично мне — а я, может быть, здесь один — это не нравится. Это может привести к более двусмысленному чтению:

«Он сказал: «Это рыба с чипсами»…»

с прямыми апострофами (немного) яснее, где заканчивается цитата:

«Он сказал: «Это рыба с чипсами»…»

и то, что апостроф является «прямым», имеет для меня больше смысла, потому что его назначение — указывать пропущенные буквы — не имеет внутренней направленности, в то время как кавычки явно асимметричны по своему назначению.

В традиционном ASCII, конечно, нет умных кавычек, поэтому апостроф всегда используется для обоих...

в некоторых установках Windows LoadString дает сбой при попытке загрузить строку, содержащую U+2019, но работает в некоторых других установках Windows.

Здесь вы встречаетесь с ужасом кодовой страницы «ANSI». Это кодировка символов по умолчанию, которая отличается в разных языковых стандартах установки Windows. Таким образом, на машине в западном регионе вы получаете разные результаты при чтении ресурса, чем при чтении на японской Windows.

Очень жаль, что в Windows используются различные кодовые страницы по умолчанию вместо использования единой глобальной кодировки, такой как UTF-8, но сейчас уже слишком поздно что-то исправлять. Если вы скомпилируете все свое приложение как приложение Unicode (поэтому вы будете использовать LoadStringW, а не LoadStringA), то вы сможете гораздо лучше справляться с символами, отличными от ASCII, такими как умные кавычки.

Если вы не можете перейти на приложение Unicode, вы немного застряли. Вы не сможете обрабатывать не-ASCII-символы, такие как умные кавычки, глобально, поэтому придерживайтесь только символов ASCII, таких как прямой апостроф ‹'›.

Символ U+2019 появляется в строках моего файла ресурсов, который я скопировал из Word.

Да, в Word есть раздражающая функция автозамены, которая заменяет все вводимые вами апострофы умными кавычками. Это особенно нежелательно, когда вы имеете дело с кодом, где ‹’› сломает программу; но это также неправильно даже для простого старого английского, так как невозможно правильно угадать нужное направление цитаты. (Например, один из апострофов в слове «рыба-н-чипс» будет поставлен неправильно.)

Я предлагаю отключить функцию автоматической замены умными кавычками. Если вам нужны умные кавычки, лучше печатать их намеренно. К сожалению, их неудобно печатать на большинстве раскладок клавиатуры, часто требуются непонятные последовательности Alt+Numpad. Лично я использую это, чтобы перетаскивать их на клавиши Alt+[].

person bobince    schedule 15.07.2011
comment
Фантастический ответ - очень тщательный! Спасибо, что нашли время дать такое подробное объяснение. - person Ian; 14.01.2016
comment
Вы определенно не одиноки в том, что считаете это неправильным. ;) Тем не менее, кудрявый исторически более правильный и фактически рекомендуемый символ в UTF в качестве апострофа (к сожалению). Более подробную информацию можно найти здесь: quora.com/ - person stefanct; 08.01.2017
comment
Вот интересная статья по теме cl.cam.ac.uk/~mgk25 /ucs/quotes.html - person Nick; 07.06.2017
comment
«Мне это не нравится. Это может привести к более двусмысленному чтению[…] с прямыми апострофами (незначительно) яснее, где заканчивается цитата[.]». На самом деле это не проблема апострофа, а скорее выбранных кавычек в английском языке, вызывающих двусмысленность. . В большей части Европы (за исключением Англии) предпочтительными символами являются кайры («Я не › кавычка»), устраняющие любую двусмысленность. Никогда не следует заменять апостроф апострофом U+0027, когда доступен доступ к UTF8. Для справки и инструкций см., среди прочего, practicaltypography.com/apostrophes.html. - person Canned Man; 11.06.2018

Исторически так сложилось, что одинарные и двойные кавычки идут парами: слева (открыто) и справа (закрыто).

В течение многих лет наборы символов компьютеров были ограничены, и каждый из них имел единую форму.

Теперь, с появлением Unicode, полные формы доступны, но их поддержка по-прежнему ограничена. Языки программирования по-прежнему используют простые формы, а полные формы по-прежнему могут вызывать проблемы.

person MRAB    schedule 15.07.2011