Quando abbiamo trasportato un filesystem CMS e mysql dump via rsync da un server Linux a un altro server Linux, abbiamo usato un MacOS nel mezzo per memorizzare temporaneamente i dati. Dopo che il CMS era attivo sull'altro server Linux, tutti i file di immagine statici, se disponibili. Ma tutti i nomi di file con dieresi tedesca non sono stati trovati dal CMS, sebbene siano visibili e accessibili. Abbiamo subito scoperto che esattamente questo succede:
Quando creo un nome file con umlaut tedeschi su Linux in questo modo:
linux$ mkdir umlauttest
linux$ touch umlauttest/äöü
E poi vai su un Mac e rilasci un rsync per copiare la directory sul mio Mac ...
mac$ rsync -a user@linux:umlauttest .
E poi copiarlo dal mio Mac a Linux:
mac$ rsync -a umlauttest/. user@linux:umlauttest2
Quindi ho davvero un problema sul mio Linux, perché il nome del file è un po 'rotto.
linux$ diff umlauttest umlauttest2
Only in umlauttest2: äöü
Only in umlauttest: äöü
Cioè, perché MacOS sta infatti convertendo i caratteri del nome file in caratteri compositi Unicode, che è in realtà qualcosa che io chiamo metamagaggi maneggevoli. Questo comportamento si verifica anche utilizzando scp
per copiare i file.
C'è un modo per impedire che ciò accada?