web-dev-qa-db-fra.com

Erreur d'encodage et de décodage dans le nom non anglais du fichier compressé

J'ai un fichier rar. Après extraction, il génère un fichier avec le nom chinois qui apparaît dans Nautilus sous la forme:

��������ѧ.������.����������ѧ������.2008.djvu (codage non valide)

Dans le terminal, il s’affiche:

<BD><FC><B4><FA><D7><E9><BA><CF>ѧ.<CD><F5><CC><EC><C3><F7>.<B4><F3><C1><AC><C0><U+DE64><B4><F3>ѧ<B3><F6><B0><E6><C9><E7>.2008.djvu

Le contenu du fichier rar répertorié par unrar est correct:

$ unrar l 近代组合学.王天明.大连理工大学出版 社.2008.rar    
UNRAR 3.93 freeware      Copyright (c) 1993-2010 Alexander Roshal    
Archive 近代组合学.王天明.大连理工大学出版社.2008.rar    
 Name             Size   Packed Ratio  Date   Time     Attr      CRC   Meth Ver
-------------------------------------------------------------------------------
 近代组合学.王天明.大连理工大学出版社.2008.djvu  6190416  6187189  99% 03-06-11 10:33  .....A.   98320D40 m3g 2.9
-------------------------------------------------------------------------------
    1          6190416  6187189  99%

Le fichier ne peut être ouvert que si je change son nom pour ressembler à 1.djvu.

Je me demandais pourquoi les caractères ne sont pas affichés correctement avec le nom chinois du fichier compressé, alors que je peux créer un répertoire ou un fichier avec le nom chinois?

Comment vais-je faire?

Merci et salutations!

6
Tim

Peut-être que le programme d'archives graphiques ne comprend pas le chinois. Essayez d'extraire l'archive en utilisant la ligne de commande:

  1. Ouvrez un terminal .
  2. Accédez au répertoire contenant le fichier:

    cd /path/to/directory/
    

    Vous pouvez utiliser le Tab clé pour compléter les noms de fichier et noms de répertoire. Appuyez deux fois sur Tab pour obtenir une liste des achèvements possibles au cas où il y aurait plus d'une option.

  3. Exécutez le programme unrar pour décompresser filename.rar:

    unrar x filename.rar
    

    Ici, vous pouvez également utiliser la complétion par tabulation pour le nom de fichier.

  4. Le contenu de l'archive sera visible dans le répertoire actuel.
6
Lekensteyn

On dirait que le nom de fichier utilise un encodage de caractères différent de celui de votre environnement. Le caractère ѧ (CYRILLIC SMALL LETTER LITTLE YUS) ne fait probablement pas partie d'un nom de fichier chinois.

Avez-vous des informations sur le système d'exploitation et les paramètres de langue dans lesquels le fichier a été créé? Savez-vous quels encodages de caractères sont courants pour encoder les noms de fichiers chinois?

Si vous connaissez le codage des noms de fichiers, vous pouvez utiliser convmv (non installé par défaut) pour le convertir en codage que vous utilisez (très probablement UTF-8).

3
Florian Diesch

essaye ça:

unrar --enable-charset x $1
1
Dmitry Krivenko

J'ai eu le même problème avec rar-file qui contenait des noms avec des lettres cyrilliques. J'ai pu résoudre ce problème en réinstallant unrar tel quel suggéré ici :

$ Sudo apt-get remove rar
$ Sudo apt-get remove unrar
$ Sudo apt-get install unrar

Il s’est avéré que par défaut, la version open source de rar & unrar est installée sous Ubuntu: "unrar 0.0.1 Copyright (C) 2004 Ben Asselstine, Jeroen Dekkers". Cette version ne gère pas bien les symboles non-ASCII.

Après avoir réinstallé unrar la version actuelle de celle-ci installée à partir du référentiel "restreint" (logiciel propriétaire) (notez que cela devrait être activé dans les paramètres de mise à jour): "Logiciel gratuit UNRAR 5.40 Copyright (c) 1993-2016 Alexander Roshal"

Cette version gère les symboles Unicode, du moins cela a fonctionné pour moi avec des lettres cyrilliques.

Notez que la suppression de la version open source de rar/unrar a également corrigé un problème lié au logiciel d'interface graphique: Rar archive with Cyrillic letters

1
Vladimir L.