ubuntu å vs osx å?


10

Non sono sicuro che si tratti di una domanda Ubuntu o OSX, ma inizierò qui. Lascio alle mod per spostare la domanda su AskDifferent se più appropriata.

Ho spostato un file da Ubuntu a OSX usando SCP sul computer Apple. Ho modificato il file sul computer Apple. Quindi ho spostato indietro il file, usando di nuovo scp sul computer Apple.

Il nome file del file di origine era Documents / trettiårsfirarätare .

  • Codice sorgente: Documents/trettiårsfirarätare

Il nome file che ho ricevuto aveva il nome Documents / trettiårsfirarätare .

  • Codice sorgente: Documents/trettia˚rsfirara¨tare

Sebbene possano sembrare simili, le lettere å e ä sono in realtà diverse tra loro. In nessun momento ho cambiato il nome del file.

Questo per me fa poca differenza tecnica, ho appena cambiato il nome del file in quello che Ubuntu considera å e ä, ma ha solleticato la mia curiosità.

Puoi spiegarmi perché è successo?


1
Questo problema probabilmente coinvolgerà Unicode. Cosa succede se scp (o equivalenti) copia da OS X a Ubuntu (o Ubuntu a OS X), ma sulla macchina Ubuntu?
david6

Ho guardato questa domanda da un mac e non ho visto alcuna differenza tra le linee, ora quando sono tornato al mio laptop Ubuntu ho visto immediatamente le piazze, anche prima della modifica di Takkat.
Alvar,

Non proverò a scp-ing da Ubuntu a OSX su Ubuntu a causa della macchina Apple che non ha sshd, ma scp-ing su OSX è sufficiente per cambiare il nome del file. L'ho copiato avanti e indietro solo una volta e il nome è stato cambiato, quindi sembra che scp sia l'applicazione che cambia il nome.
Azzid

Risposte:


8

Nel nome originale "Documents / trettiårsfirarätare", la lettera "å" è rappresentata internamente come U + 00E5 LATINA PICCOLA LETTERA A CON ANELLO SOPRA. Questa è la rappresentazione comune di questo personaggio. Nel nome file che hai restituito, è stato convertito nella coppia di caratteri U + 0061 LATINA PICCOLA LETTERA A U + 030A ANELLO COMBINANTE SOPRA. Questo è consentito, ma non comune; significa decomporre "å" nel carattere base "a" e un segno diacritico combinato. Queste rappresentazioni sono dichiarate canonicamente equivalenti in Unicode; questo significa che la presentazione visiva dovrebbe normalmente essere la stessa, ma non è necessario (qui, in SO, come visto in Firefox, non lo è - dipende dal font e dal software di rendering). I programmi possono trattarli come equivalenti, ma non è necessario. In un file system, ad esempio, potrebbero essere trattati come diversi.

Allo stesso modo, la lettera "ä" viene scomposta in U + 0061 LATINA PICCOLA LETTERA A U + 0308 COMBINANDO LA DIAERESI.

La ragione di ciò non è ovvia. Forse alcuni software "pensano" che dovrebbe convertire le stringhe in una forma di normalizzazione che decompone tutti i caratteri scomponibili, probabilmente Unicode Normalization Form D (NFD)

Il resto è un po 'più misterioso. Quello che specifichi come “Sourcecode” per il nome del file che hai restituito, “Documents / trettia˚rsfirara¨tare”, le forme decomposte sono state mungute: i segni diacritici sono stati sostituiti dai loro cloni spaziali, i caratteri “˚” e “¨ ”. Ciò non è normale e cambia sia l'identità dei dati sia il relativo rendering.


La parte SourceCode non è stata aggiunta da me. Vedo che c'è una differenza tra le lettere nella loro rappresentazione visiva, la prima å ha un anello più piccolo della seconda, ma a parte questo le stringhe sembrano uguali. Tuttavia, non sono eqvivalenti quando si utilizza il completamento della scheda bash.
Azzid

In realtà å è una lettera a sé stante, non è solo una a con un segno diacritico, proprio come h è una lettera e non solo e n con un segno diacritico.
Kasperd,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.