Como corrigir nomes de arquivos unicode?

3

Eu tenho o Windows 7 com o sistema de arquivos NTFS. Eu tenho nomes de arquivos e diretórios como:

Kispál és a Borz - 02 - Tökéletes Helyettes

Eu quero transformá-los para:

Kispál és a Borz - 02 - Tökéletes Helyettes

O sistema de arquivos é capaz de armazenar nomes de arquivos como フリー百科事典 , então ele certamente tem suporte unicode.

Como eu imagino a história, há muito tempo eles eram perfeitos. Em seguida, eles foram transferidos de um UTF-8 para um sistema de arquivos Latin-1 e, em seguida, de volta para esse sistema de arquivos de suporte UTF-8. Em teoria, todas as informações estão lá, eu poderia escrever um programa em C para corrigir esses caracteres, mas eu suponho que alguém já tenha feito isso em algum lugar.

Você conhece alguma utilidade que possa fazer a transformação?

    
por Notinlist 18.05.2011 / 10:04

4 respostas

0

Eu escrevi um híbrido C / C ++ que faz a parte de tradução (não renomeia nada, apenas converte sequências de bytes ruins em boas). Você pode baixá-lo usando o link no final deste post.

O arquivo de entrada é decodificado como um fluxo UTF-8 em uma seqüência de posição de código UNICODE que NÃO é convertida em nenhuma outra página de códigos. Todas as posições de código estão abaixo de 256, elas representam a sequência de bytes da string UTF-8 original. Então eu apenas escrevo essas posições de código como bytes para a saída. O resultado é uma string UTF-8 correta. Ainda não é uma aplicação para o meu problema, mas o núcleo da solução.

O programa é escrito e testado no Linux, mas deve funcionar em qualquer sistema operacional. Exemplo de uso:

nil@hippy:~/playground/c++$ g++ utf8decode.cpp -o utf8decode
nil@hippy:~/playground/c++$ cat > file
Kispál és a Borz - 02 - Tökéletes Helyettes
nil@hippy:~/playground/c++$ cat file | ./utf8decode
Kispál és a Borz - 02 - Tökéletes Helyettes
Characters found: 48
nil@hippy:~/playground/c++$

Eu escrevi um contador de caracteres UTF-8 antes e modifiquei isso. Eu não escrevi o programa inteiro em uma hora. Fonte: link link

    
por 18.05.2011 / 11:25
1

Meu problema é que o Windows 10 Explorer não estava exibindo nomes de arquivos Unicode corretamente. O nome estava em Unicode, mas o lixo foi mostrado na tela. A resposta foi que o problema desapareceu quando eu reiniciei.

    
por 17.12.2016 / 16:25
0

é possível corrigi-los com a ferramenta multi rename do comandante total, com o botão editar nomes de arquivos.

    
por 07.05.2014 / 09:25
0

Deixe-me elaborar sobre a resposta dada por dinar qurbanov. Para corrigir a codificação de nomes de arquivos no Total Commander v7 ou superior, você precisará usar a ferramenta de renomeação múltipla (Ctrl + M).

Lá você encontrará um botão semelhante a uma pasta, clique nele e selecione 'Editar nomes' para obter um arquivo de texto contendo nomes de arquivos. Depois de corrigi-los com qualquer ferramenta / editor, você precisa colá-los e fechar o editor.

Um botão para editar nomes de arquivos

    
por 30.06.2017 / 19:31