Ответ 1
В чем разница между этими двумя символами?
спорно!
Идя по именам, можно предположить, что курчавый < > используется только как кавычка, а прямая <' > используется только как реальный апостроф, индикатор пропущенных букв.
Однако традиционная практика верстки на английском языке всегда должна использовать курчавую < > , чтобы сделать апостроф. Лично - и я могу быть один здесь - мне это не нравится. Это может сделать для более двусмысленного чтения:
"Он сказал:" Его фишки рыбы... "
когда апострофы будут прямыми (незначительно) яснее, где заканчивается цитата:
"Он сказал:" Это рыбу "n" фишки... "
и апостроф, являющийся "прямым", имеет больше смысла для меня, потому что его цель указывать пропущенные буквы не имеет присущей направленности, тогда как кавычки явно несимметричны по назначению.
В традиционном ASCII, конечно, нет умных кавычек, поэтому апостроф всегда используется для обоих...
в некоторых установках Windows, LoadString терпит неудачу при попытке загрузить строку, содержащую U + 2019, но она работает с некоторыми другими установками Windows.
Здесь вы встретите ужас кодовой страницы ANSI. Это кодировка символов по умолчанию, которая отличается от разных локалей установки Windows. Таким образом, на машине в западном регионе вы получаете разные результаты, когда читаете ресурс, когда читаете его в японской Windows.
Очень жаль, что Windows имеет разные кодовые страницы по умолчанию вместо того, чтобы использовать одну глобальную кодировку, такую как UTF-8, но сейчас слишком поздно исправлять. Если вы скомпилируете все приложение в качестве приложения Unicode (так что вы будете использовать LoadStringW
, а не LoadStringA
), то вы сможете справиться с не-ASCII-символами, такими как умные кавычки, намного лучше.
Если вы не можете перейти в приложение Unicode, вы немного застряли. Вы не сможете обрабатывать символы, отличные от ASCII, такие как интеллектуальные кавычки во всем мире, поэтому придерживайтесь символов ASCII, таких как прямой апостроф < → .
Символ U + 2019 появляется в строках в моем файле ресурсов, который я скопировал из Word
Да, у Word есть раздражающая функция AutoCorrect, которая заменяет все апострофы, которые вы вводите, с помощью умных кавычек. Это особенно нежелательно, когда вы имеете дело с кодом, где < > нарушит программу; но это также неправильно даже для простого старого английского, поскольку невозможно правильно угадать желаемое направление цитаты. (Например, он получит один из апострофов в "рыбных" фидах ", например.)
Я предлагаю отключить функцию автоматического замены с помощью умных кавычек. Если вам нужны умные цитаты, лучше вводить их намеренно. К сожалению, они неудобно печатать на большинстве раскладок клавиатуры, часто требуя неясных последовательностей Alt + numpad. Лично я использую этот, чтобы отбросить их на клавиши Alt + [].