Caractères Unicode dans le serveur Ubuntu


10

J'ai récemment migré d'Ubuntu Desktop 13.04 vers Ubuntu Server 13.10 et maintenant mon système de fichiers ne semble pas prendre en charge les caractères Unicode. J'utilise rsync pour sauvegarder / synchroniser des fichiers et il montre les caractères appropriés, mais il veut supprimer le nom de fichier non correspondant et créer une version échappée.

Par exemple:

root@ubuntu-server:~# rsync -avh --progress --delete --dry-run --exclude \$RECYCLE.BIN /media/source/ /media/target/

deleting Tiësto - Ten Seconds Before Sunrise.mp3
Ti\#353sto - Ten Seconds Before Sunrise.mp3

De plus, si je copie un fichier Unicode dans le système de fichiers, il apparaît comme:

drwxr-xr-x 3 root root      4096 Jan 21  2013 DJ Ti?sto/

J'ai essayé d'installer des bibliothèques Unicode via apt-get install unicodemais cela ne semble rien faire pour résoudre le problème.

Mise à jour: Maintenant, cela peut être un problème de noyau. Je copie sur samba / cifs et j'ai essayé de spécifier le jeu de caractères utf8 via mount -t cifs //192.xxx.xxx.xxx/source/ /media/target/ -o iocharset=utf8mais cela génère une erreur ...

mount error(79): Can not access a needed shared library
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

La vérification du journal du noyau révèle ce petit bijou:

root@ubuntu-server:~# tail /var/log/kern.log
Nov 30 03:51:33 ubuntu-server kernel: [ 1756.518222] CIFS VFS: CIFS mount error: iocharset utf8 not found

Comment obtenir le support utf8 dans le noyau?

Des idées?

Réponses:


10

Ok, après le dépannage ci-dessus, et beaucoup de recherches sur Google ... J'ai trouvé ce rapport de bug où la solution est expliquée. Fondamentalement, si vous effectuez une installation minimale du serveur Ubuntu, vous obtenez exactement cela, des pilotes minimaux. Je suppose que quelqu'un a décidé que utf8 n'était pas assez important pour être inclus dans l'ensemble minimal de pilotes. Ainsi, si vous avez fait ce type d'installation, vous devez installer ultérieurement le linux-image-extra-virtualpackage pour obtenir la prise en charge d'utf8. 232 Mo de pilotes supplémentaires pour prendre en charge le jeu de caractères utf8 ... Efficace. : - / Quoi qu'il en soit, cela a résolu le problème.

root@ubuntu-server:~# apt-get install linux-image-extra-virtual
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
    crda iw libnl-3-200 libnl-genl-3-200 linux-firmware linux-image-3.11.0-13-generic
    linux-image-extra-3.11.0-13-generic linux-image-generic wireless-regdb
The following NEW packages will be installed:
    crda iw libnl-3-200 libnl-genl-3-200 linux-firmware linux-image-3.11.0-13-generic
    linux-image-extra-3.11.0-13-generic linux-image-extra-virtual
    linux-image-generic wireless-regdb
0 upgraded, 10 newly installed, 0 to remove and 12 not upgraded.
Need to get 73.5 MB of archives.
After this operation, 232 MB of additional disk space will be used.

Test de la copie du fichier utf8:

root@ubuntu-server:~# cp -a /media/source/DJ* /media/target/.

Vérifier ensuite:

root@ubuntu-server:~# ll
drwxr-xr-x 3 root root      4096 Jan 21  2013 DJ Tiësto/

Mise à jour (22/02/2015):

Vous pourrez peut-être vous en sortir avec une installation beaucoup plus légère si vous utilisez l' --no-install-recommendsargument to apt-get. Je ne l'ai pas essayé , mais vous pourriez peut-être le faire si vous rencontrez ce problème.

Tu pourrais essayer:

apt-get install --no-install-recommends linux-image-extra-virtual

Si cela ne résout pas le problème, réinstallez simplement, mais avec le recommande:

apt-get install --reinstall linux-image-extra-virtual

Cela a ajouté la plupart des caractères Unicode pour moi, mais je trouve que certains sont toujours manquants. Des choses comme des guillemets spéciaux comme ce «Prince» ne fonctionnent pas.
thouliha
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.