Ocorreu um erro ao exibir arquivos com nomes diferentes do inglês no disco rígido

1

Eu tenho um problema que nem sei por onde começar a procurar ajuda (o google não está ajudando)

Eu tenho um disco rígido externo formatado como Mac OS Extended (Journaled). Eu estava usando-o com o meu Macbook OS X por um longo tempo. Existem muitos arquivos neste disco rígido que são intitulados com caracteres coreanos.

Recentemente eu adquiri um novo computador e instalei o Xubuntu 11.04 nele, junto com o suporte ao idioma coreano. Usando a GUI eu posso montar o disco rígido externo e ver apenas os arquivos que não são intitulados em coreano. Os que são intitulados em coreano nem aparecem. Agora, se eu for para o disco rígido pela linha de comando e ls da unidade, receberei uma listagem dos arquivos coreanos com os nomes coreanos, mas somente depois de uma mensagem de erro para cada um desses arquivos como " ls: não pode acessar: nenhum arquivo ou diretório desse tipo ".

Agora, de volta ao meu Mac, se eu renomear o arquivo coreano para um nome em inglês, o arquivo não poderá ser visto por minha máquina linux. Além disso, se eu renomear o arquivo para um nome coreano na minha máquina LINUX (lembre-se, minha máquina linux também tem suporte coreano), então a máquina linux não tem nenhum problema em reconhecê-lo ou lê-lo, mas agora o MAC não será capaz de reconhecer o arquivo. Ou seja, se eu for ao meu Mac agora e tentar abrir o arquivo através do gui, o arquivo (na verdade, um diretório) está vazio. Se eu tento cd no arquivo através da linha de comando, ele diz que me dá um erro "não há arquivo ou diretório". Mas fazendo um ls não dá erros.

Em suma, parece que se eu tentar nomear um arquivo com um idioma estrangeiro no meu mac, meu linux não irá reconhecê-lo, e se eu tentar fazê-lo com o meu linux, meu mac não reconhecerá isto. A única maneira dos dois computadores serem capazes de usar o disco rígido externo parece ser se todos os arquivos tiverem o nome em inglês. Eu quero evitar renomear minhas centenas de arquivos coreanos para nomes em inglês. Existe alguém que saiba o que pode estar acontecendo aqui, ou me aponte para uma direção que possa me ajudar a lidar com isso?

Obrigado! Bryan

    
por bhh1988 26.09.2011 / 11:03

1 resposta

1

Codificação de nomes de arquivos?

Perl vê os nomes de arquivos coreanos?

perl -e 'opendir(D, ".");while($f=readdir(D)){print "--$f--\n";}'

Se ele mostrar os nomes de arquivos (ou alguma versão mutilada irreconhecível deles), você poderá descobrir se é um problema de codificação. As codificações coreanas incluem KS X 1001, EUC-KR e ISO-2022-KR. No entanto, acredito que tanto o OSX quanto o Linux normalmente usam o UTF-8.

Veja esta resposta que diz

OS X's HFS+ filesystem requires that all filenames be stored in the UTF-8 representation of their fully decomposed form.

Existem ferramentas para converter conversão de codificações de nome de arquivo , mas você precisa convencer ambos os sistemas operacionais a usar uma codificação comum .

Veja esta pergunta descrevendo as codificações de nomes de arquivos do Linux.

I have run convmv -f UTF-8 -t UTF-8 on the directory, and discovered these 500 filenames are not encoded in UTF-8 (convmv is able to detect and ignore filenames already in UTF-8)

Is there an easy way I can find out which language encoding they are currently using?

    
por 26.09.2011 / 11:52