В чем разница между этими двумя персонажами?
Спорный!
Судя по именам, можно предположить, что фигурная ‹’› используется только как кавычка, а прямая ‹’› используется только как настоящий апостроф, индикатор пропущенных букв.
Однако традиционная практика набора текста на английском языке всегда заключается в использовании фигурной ‹’› для передачи апострофа. Лично мне — а я, может быть, здесь один — это не нравится. Это может привести к более двусмысленному чтению:
«Он сказал: «Это рыба с чипсами»…»
с прямыми апострофами (немного) яснее, где заканчивается цитата:
«Он сказал: «Это рыба с чипсами»…»
и то, что апостроф является «прямым», имеет для меня больше смысла, потому что его назначение — указывать пропущенные буквы — не имеет внутренней направленности, в то время как кавычки явно асимметричны по своему назначению.
В традиционном 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