3 votos

UTF8 nombres de archivos y utilidades de shell

Pruebe los siguientes comandos en el terminal:

touch á.txt
$ ls
á.txt

find .  -name á.txt -print

se imprime nada.

Mi Terminal.la configuración de la aplicación se utf8 - ver aquí:

enter image description here

La pregunta: ¿Cómo lograr trabajar transprarently (Buscador + de línea de comandos) con nombres de archivo UNICODE?

Entiendo que detrás de la escena es diferente de normalización de unicode, por lo que:

$ echo á.txt | od -bc
0000000   303 241 056 164 170 164 012                                    
           á  **   .   t   x   t  \n 

y cuando

$touch á.txt
$ ls *.txt
á.txt

$ ls *.txt | od -bc
0000000   141 314 201 056 164 170 164 012                                
           a   ́     **   .   t   x   t  \n   

pero ¿CUÁL ES LA SOLUCIÓN?

3voto

Fuzzy Purple Monkey Puntos 702

Como usted ha mencionado, personajes como á se almacenan o se muestra en la descompuesto forma (LETRA a minúscula LATINA + COMBINACIÓN de ACENTO AGUDO) aunque la mayoría de las distribuciones de teclado insertar caracteres en forma compuesta (LETRA a minúscula LATINA CON AGUDA).

El formato es una variante de la DFN, donde algunos rangos de caracteres no se descompongan. Ver Codificaciones de Texto en VFS:

Importante: Los términos utilizados en este Q&A, precompuesta y descompuesto, corresponden aproximadamente a Unicode de forma Normal, C y D, respectivamente. Sin embargo, la mayoría de los formatos de volúmenes no siga la especificación exacta de estas formas normales. Por ejemplo, HFS Plus (Mac OS Extended) utiliza una variante de la Forma Normal de D en el que U+2000 a U+2FFF, U+F900 a través de U+FAFF, y U+2F800 a través de U+2FAFF no son descompuestas (esto evita problemas con la ronda de viaje conversiones de Mac antiguo codificaciones de texto).

Puede convertir el texto en la descompuesto formato con iconv -t utf-8-mac:

$ touch á
$ ls | tr -d '\n' | xxd -p
61cc81
$ printf á | xxd -p
c3a1
$ find . -name á
$ find . -name $(iconv -f utf-8 -t utf-8-mac <<< á)
./á

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X