
Tenho um Linux, feito pela ferramenta Buildroot.
E enfrentei um problema ao criar arquivos com nomes cirílicos. Quando tento criar um arquivo, por exemplo com esse comando:
touch файл.txt
Eu recebo um arquivo com o nome ????.txt
.
Tentei exportar LANG
variável:
# export LANG=ru_RU.utf8
# echo $LANG
ru_RU.utf8
E também tentei criar o arquivo no /temp
diretório e em uma partição EXT3, mas o resultado é o mesmo.
Em geral, posso usar cirílico no sistema: os programas podem imprimi-los e posso usar símbolos cirílicos em programas (como no vi, por exemplo).
O que mais posso tentar fazer?
Responder1
touch
fezcrie o nome do arquivo corretamente. Mas ls
não está exibindo isso. Isso ocorre porque, ls
por padrão, exibe pontos de interrogação para qualquer coisa que não seja reconhecida como caractere imprimível.
Você pode testar isso usando outro comando para exibir o conteúdo do diretório. Experimente qualquer um dos seguintes comandos:
$ ls --show-control-chars
$ sh -c 'echo *'
$ python3 -c 'import os; print(os.listdir("."))'
Definir $LANG para um código de idioma UTF-8, como você fez quando digitou export LANG=ru_RU.UTF-8
, deveria ter resolvido o problema. Como isso não funcionou, verifique
- Se
LC_CTYPE
tiver sido definido, substituirá o valor deLANG
. - O seu sistema foi instalado com suporte ao idioma russo? Caso contrário, use outra localidade suportada, como
en_US.UTF-8
.