2011-07-15 19 views
12

marca de Derecho sola cita (U + 2019) vs apóstrofe (U + 0027)Apóstrofo simple derecho vs. apóstrofo?

¿Cuál es la diferencia entre estos dos personajes?

Me encontré con este problema donde uso CAtlString para cargar una cadena de un archivo de recursos, y en algunas instalaciones de Windows, LoadString falla al intentar cargar una cadena que contiene U + 2019, pero funciona en otros Windows instalaciones. El carácter U + 2019 aparece en cadenas en mi archivo de recursos que he copiado de Word, y U + 0027 aparece en los movimientos que he codificado a mano. ¿Por qué LoadString (a veces) se atraganta con esto?

Respuesta

20

¿Cuál es la diferencia entre estos dos caracteres?

Arguable!

De acuerdo con los nombres, uno se imagina que el rizado <'> es solo para comillas, y que la recta <'> es solo para usar como un apóstrofo real, un indicador de letras omitidas.

Sin embargo, la práctica tradicional de composición tipográfica en inglés es usar siempre un rizado <'> para hacer un apóstrofo. Personalmente, y puedo estar solo aquí, no me gusta esto. Se puede hacer la lectura más ambiguo:

“Me dijo: 'Es el pescado 'n' chips' ...”

con los apóstrofes siendo recta es (marginalmente) más claras donde termina la cita :

“dijo, 'es pescado 'n' chips' ...”

y el apóstrofe de ser 'recto' tiene más sentido para mí porque su propósito de indicar letras omitidas no tiene una direccionalidad inherente, mientras que las comillas son claramente asimétricas en su propósito.

En ASCII tradicional, por supuesto, no hay comillas tipográficas, por lo que el apóstrofe se utiliza siempre para los dos ...

en algunas instalaciones de Windows, el LoadString falla al intentar cargar una cadena que contiene U + 2019, pero funciona en algunas otras instalaciones de Windows.

Aquí conoce el horror de la página de códigos 'ANSI'. Esta es una codificación de caracteres predeterminada que es diferente en diferentes configuraciones regionales de Windows. Por lo tanto, en una máquina en la región occidental, obtiene resultados diferentes cuando lee un recurso cuando lo lee en un Windows japonés.

Es muy desafortunado que Windows tenga distintas páginas de códigos predeterminadas en lugar de utilizar una única codificación global como UTF-8, pero ya es demasiado tarde para solucionarlo. Si compila toda su aplicación como una aplicación Unicode (por lo que usará LoadStringW en lugar de LoadStringA), entonces podrá manejar caracteres no ASCII como las citas inteligentes mucho mejor.

Si no puede pasar a una aplicación Unicode, está un poco trabado. No podrá manejar caracteres que no sean ASCII, como las comillas inteligentes de forma global, así que quédese con los caracteres ASCII como el apóstrofo directo <> solo.

El carácter U + 2019 aparece en las cadenas en mi archivo de recursos que he copiado de la Palabra

Sí, Word tiene una característica de autocorrección molesto que sustituye a todos los apóstrofes que se escriben con comillas tipográficas. Esto es especialmente indeseable cuando se trata de código, donde <'> romperá el programa; pero también está mal incluso para el inglés antiguo, ya que no es posible adivinar correctamente la dirección deseada de la cita. (Obtendrá uno de los apóstrofes en "fish 'n' chips" al revés, por ejemplo.)

Sugiero desactivar la función de reemplazo automático-con-comillas inteligentes. Si quieres las comillas inteligentes, es mejor escribirlas deliberadamente. Desafortunadamente, son inconvenientes para escribir en la mayoría de los diseños de teclado, que a menudo requieren secuencias oscuras Alt + teclado numérico. Personalmente utilizo this one para colocarlos en las teclas Alt + [].

+0

¡Fantástica respuesta, muy completa! Gracias por tomarse el tiempo para dar una explicación tan profunda. – Ian

+0

Definitivamente no está solo al percibirlo como incorrecto. ;) Sin embargo, el rizado es históricamente más correcto y en realidad el personaje recomendado en UTF como apóstrofo (desafortunadamente). Más detalles se pueden encontrar aquí: https://www.quora.com/Punctuation-Why-is-the-right-single-quote-U+2019-and-not-the-semantically-distinct-apostrophe-U+0027 -the-preferred-apostrophe-character-in-Unicode – stefanct

+0

Aquí hay un artículo relacionado interesante https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html – theoutlander

3

Históricamente, comillas simples y comillas dobles vienen en pares, izquierda (abierta) y derecha (cerrada).

Durante muchos años, los conjuntos de caracteres de las computadoras eran limitados, con una sola forma de cada uno.

Ahora, con la llegada de Unicode, los formularios completos están disponibles, pero el soporte para ellos sigue siendo limitado. Los lenguajes de programación aún usan formularios simples, y los formularios completos aún pueden causar problemas.

Cuestiones relacionadas