
Tengo un Linux, creado con la herramienta Buildroot.
Y me encontré con un problema al crear archivos con nombres cirílicos. Cuando intento crear un archivo, por ejemplo con dicho comando:
touch файл.txt
Me sale un archivo llamado así ????.txt
.
Intenté exportar LANG
la variable:
# export LANG=ru_RU.utf8
# echo $LANG
ru_RU.utf8
Y también intenté crear el archivo en /temp
el directorio y en una partición EXT3, pero el resultado es el mismo.
En general, puedo usar cirílico en el sistema: los programas pueden imprimirlos y puedo usar símbolos cirílicos en programas (como en vi, por ejemplo).
¿Qué más puedo intentar hacer?
Respuesta1
touch
hizocree el nombre del archivo correctamente. Pero ls
no lo muestra. Esto se debe a que, ls
de forma predeterminada, muestra signos de interrogación para cualquier cosa que no se reconozca como un carácter imprimible.
Puede probar esto usando otro comando para mostrar el contenido del directorio. Pruebe cualquiera de los siguientes comandos:
$ ls --show-control-chars
$ sh -c 'echo *'
$ python3 -c 'import os; print(os.listdir("."))'
Configurar $LANG en una configuración regional UTF-8, como lo hizo cuando escribió export LANG=ru_RU.UTF-8
, debería haber solucionado el problema. Como eso no funcionó, verifique
- Si
LC_CTYPE
se ha configurado, anulará el valor deLANG
. - ¿Su sistema está instalado con soporte en ruso? De lo contrario, utilice otra configuración regional compatible, como
en_US.UTF-8
.