ubuntu å vs osx å?


10

No estoy seguro si esta es una pregunta de ubuntu u osx, pero comenzaré aquí. Dejaré que los mods muevan la pregunta a AskDifferent si es más apropiado.

Moví un archivo de ubuntu a osx usando scp en la máquina apple. Edité el archivo en la máquina Apple. Luego moví el archivo hacia atrás, nuevamente usando scp en la máquina Apple.

El nombre del archivo fuente era Documents / trettiårsfirarätare .

  • Código fuente: Documents/trettiårsfirarätare

El nombre de archivo que recibí tenía el nombre Documentos / trettiårsfirarätare .

  • Código fuente: Documents/trettia˚rsfirara¨tare

Si bien estos pueden parecer similares, las letras å y ä son realmente diferentes entre ellas. En ningún momento cambié el nombre del archivo.

Esto hace poca diferencia técnica para mí, simplemente cambié el nombre del archivo a lo que ubuntu considera å y ä, pero me hizo cosquillas.

¿Puedes explicarme por qué sucedió esto?


1
Este problema probablemente involucrará a Unicode. ¿Qué sucede si scp (o equiv.) Copia de OS X a Ubuntu (o Ubuntu a OS X), pero en la máquina Ubuntu?
david6

Miré esta pregunta desde un mac y no vi ninguna diferencia entre las líneas, ahora cuando volví a mi computadora portátil Ubuntu vi los cuadrados de inmediato, incluso antes de la edición de Takkat.
Alvar

No intentaré scp-ing de ubuntu a osx en ubuntu debido a que la máquina apple no tiene sshd, pero scp-in en osx es suficiente para cambiar el nombre del archivo. Solo lo copié una y otra vez y el nombre fue cambiado, por lo que parece que scp es la aplicación que cambia el nombre.
azzid

Respuestas:


8

En el nombre original "Documentos / trettiårsfirarätare", la letra "å" se representa internamente como U + 00E5 LETRA A LATINA PEQUEÑA CON ANILLO ARRIBA. Esta es la representación común de este personaje. En el nombre de archivo que recibió, se ha convertido en el par de caracteres U + 0061 LETRA LATINA PEQUEÑA A ANILLO COMBINADO U + 030A ARRIBA. Esto es permisible, pero no común; significa descomponer "å" en el carácter base "a" y una marca diacrítica combinada. Se declara que estas representaciones son canónicamente equivalentes en Unicode; Esto significa que normalmente se espera que la presentación visual sea la misma, pero no es necesario (aquí, en SO, como se ve en Firefox, no lo es; esto depende de la fuente y del software de representación). Los programas pueden tratarlos como equivalentes, pero no es necesario. En un sistema de archivos, por ejemplo, bien podrían tratarse como diferentes.

De manera similar, la letra "ä" se descompone en U + 0061 LETRA LATINA PEQUEÑA A U + 0308 DIAERESIS COMBINADA.

La razón de esto no es obvia. Posiblemente algún software "piense" que debería convertir las cadenas a una forma de normalización que descomponga todos los caracteres descomponibles, probablemente la Forma de normalización Unicode D (NFD)

El resto es un poco más misterioso. Lo que especifique como “Código fuente” para el nombre de archivo que recibió, “Documentos / trettia˚rsfirara¨tare”, las formas descompuestas han sido modificadas: las marcas diacríticas han sido reemplazadas por sus clones espaciados, los caracteres “˚” y “¨ ". Esto no es normal, y cambia tanto la identidad de los datos como su representación.


La parte de SourceCode no fue agregada por mí. Puedo ver que hay una diferencia entre las letras en su representación visual, la primera å tiene un anillo más pequeño que la segunda, pero aparte de eso, las cadenas se ven iguales. Sin embargo, no son equivalentes cuando se usa la finalización de la pestaña bash.
azzid

En realidad, å es una letra en sí misma, no es solo una a con una marca diacrítica, al igual que h es una letra y no solo yn con una marca diacrítica.
kasperd
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.