Cuando copio texto de PDF (Vista previa) o Docx (Páginas) con caracteres checos, algunos de los caracteres checos se copian con el acento "pegado" a ellos.
Para hacer esto aún más extraño, este comportamiento es bastante inconsistente: a veces "ř" se copia bien, a veces no. Además, no parece estar conectado a una fuente específica. Pero creo que esto sucede más a menudo con fuentes que no son nativas para OSX (como Cambria, que es la predeterminada de MS Office).
Resultado de CMD+C para "í": "í́"
¿Por qué está pasando esto?
Además, he notado que esto sucede a menudo al final de las palabras (posiblemente al final de las líneas). Lo confirmaré una vez que vuelva a suceder, ya que el comportamiento es frustrantemente difícil de reproducir.
Lo que está tratando es uno de los muchos síntomas de lo que considero la ruina de la existencia de todos los programadores modernos: la normalización Unicode y el intercambio de codificaciones de caracteres.
Literalmente se podría escribir un libro de 1000 páginas solo sobre la historia de este caos (y no me sorprendería que alguien ya lo haya hecho), así que lo reduciré a lo básico de lo que está encontrando aquí (y yo Estaré simplificando un poco), pero luego te daré algunos enlaces para "lecturas adicionales".
Primero, asegurémonos de que tienes tu Menú de entrada en tu barra de menú: En Preferencias del sistema, abre el Panel de preferencias del teclado y marca la casilla debajo de "Fuentes de entrada". Luego, desde ese elemento del menú, abra lo que ahora se llama "Mostrar emoji y símbolos". en la parte superior izquierda de la ventana, seleccione "Personalizar lista", vaya a "Tablas de códigos" y marque "Unicode" e "ISO-8859-1". Haremos una breve conferencia y luego una demostración.
De nuevo, aquí hay dos cuestiones interrelacionadas pero separadas:
Considero que esta es la causa raíz de este problema en particular. El problema es que Microsoft se ha destacado durante años por no manejar bien Unicode porque sus plataformas se han apegado más o menos al uso de una implementación anterior de conjuntos de caracteres multilingües, conocidos como "caracteres anchos", UCS-2 o UTF-16. Este sistema se implementó hace años, en un momento en que se pensaba que 16 bits (para representar ~65 000 caracteres) serían suficientes para codificar todos los símbolos que necesitaríamos. Hoy en día, hay 1.114.112 símbolos Unicode estandarizados.
Así que hoy en día, la mayoría de los sistemas (y todo lo relacionado con Apple) usan una codificación llamada UTF-8, una codificación de caracteres de ancho variable , en la que no hay una cantidad determinada de bits para codificar un carácter determinado. Esto le permite ser compatible con ASCII, y también puede agregar nuevos símbolos y caracteres como desee.
Por lo tanto, al copiar texto dentro y fuera de programas que usan un conjunto de caracteres diferente (como el de Microsoft), el conjunto de caracteres debe volver a codificarse y convertirse por completo, un proceso conocido tradicionalmente como , aunque hay literalmente docenas de implementaciones de cómo iconv
esto está hecho.
Para complicar el problema de las codificaciones está el hecho de que el estándar Unicode ha evolucionado a lo largo de los años y se dio cuenta de que para mantener la cantidad de caracteres únicos limitada a "solo" millones, en lugar de miles de millones, sería mejor tener algunos los caracteres sean "caracteres combinables", caracteres que modifican al anterior de forma regular. Al hacerlo, no necesita una entrada separada para cada letra con cada variante de acento, simplemente agrega un carácter de acento "compartido" al carácter original. Pero no siempre se hizo así, por lo que hay múltiples formas de producir el mismo símbolo. El tuyo es el ejemplo perfecto.
Empezamos con el símbolo LETRA I MINÚSCULA LATINA (U+0069):
i
Ahora, cuando desee agregar el acento agudo, Microsoft lo reemplaza con
LETRA I MINÚSCULA LATINA CON AGUDO (U+00ED):
í
Pero Apple, en cambio, agrega un segundo carácter, COMBINANDO ACENTO AGUDO (U+0301):
́
Puede hacerlo usted mismo (aquí es donde entra en juego el visor de caracteres). Simplemente escriba un i
, luego busque combining acute
en el Visor de caracteres, haga doble clic en el símbolo y listo:
í
Que es, de hecho, completamente diferente al primer símbolo, arriba. Es LETRA I MINÚSCULA LATINA (U+0069) seguida de ACENTO AGUDO COMBINADO (U+0301). Copie y pegue cada uno en el Visor de caracteres, y verá lo que quiero decir.
Sí, ambos representan visualmente el mismo símbolo. Pero si de alguna manera a lo largo de la línea (generalmente al mismo tiempo que la conversión del conjunto de caracteres), un proceso UTF-8 agrega el carácter combinado, pero se conserva el carácter precombinado original. Es decir, ¿qué sucede cuando el enfoque de "símbolos combinados" se agrega de alguna manera a la versión heredada, en lugar de reemplazarla ? Bueno, el acento de "combinación de caracteres" seguirá queriendo hacer su trabajo.
Entonces, cuando uno combina la LETRA I MINÚSCULA LATINA CON AGUDO (U+00ED) con ACENTO AGUDO COMBINADO (U+0301):
í́
Y ahí lo tienes.
Hay una respuesta de desbordamiento de pila muy famosa que demuestra hasta dónde puede llegar esto.
Algunas lecturas ligeras:
í́
la situación. :) Gracias y disculpa por no poder otorgarte la recompensa (ya que definitivamente te la mereces), no alcancé el límite de tiempo...Con respecto a copiar/pegar desde pdf, el proceso de creación de pdf en particular puede estropear el tratamiento de los caracteres que no son ascii. Sin información sobre cómo se generaron sus archivos PDF, como la codificación y las fuentes utilizadas, es difícil determinar por qué los resultados no son correctos.
tom gewecke
petr cibulka
petr cibulka
petr cibulka
tom gewecke