J'ai deux QNAP que je peux connecter en utilisant SSH :
- TS-412
- TS-851
Sur le TS-851, juste après la connexion, si je tape "é" sur mon clavier, il affiche "é" à l'écran. De l'autre côté, le TS-412 n'affiche pas le caractère à l'écran. Je ne peux donc pas accéder à quoi que ce soit qui contienne des caractères accentués (toujours via SSH).
J'ai fait des recherches et tout ce que j'ai trouvé concernait un problème de SMB, mais ce n'est pas mon cas. Les dossiers partagés apparaissent correctement. La liste des dossiers via SSH affiche tous les caractères accentués. Mais en tapant et en collant l'un d'eux, on n'accède pas à la boîte. Même l'auto-complétion des chemins d'accès supprime les caractères accentués.
Les paramètres locaux sont les mêmes dans les deux cas. Tout semble identique, mais il est clair que quelque chose ne l'est pas.
Je sais que QNAP a sa propre version de Linux et j'ai déjà demandé dans leurs forums, mais au cas où quelqu'un ici le saurait. En effet, je pense que ce problème ressemble plus à un problème Linux générique (je ne dis pas que c'est le cas partout, mais ce n'est pas spécifique aux QNAP).
C'est vraiment ennuyeux !
Edit #1 - Répondre aux questions
Exécution de locale
sur mon PC :
LANG=C.UTF-8
LANGUAGE=
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=
Exécution de locale
sur le TS-412 :
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
Exécution de locale
sur le TS-851 :
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
Sortie pour echo $TERM $SHELL
identique sur toutes les machines :
xterm-256color /bin/bash
Sortie pour uname -a
sur mon ordinateur, TS-412, TS-851 (dans l'ordre) :
Linux COMPUTER_NAME 5.10.102.1-microsoft-standard-WSL2 #1 SMP Wed Mar 2 00:30:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Linux QNAP_TS_412_NAME 3.4.6 #1 Thu Nov 24 07:58:16 CST 2022 armv5tel unknown
Linux QNAP_TS_851_NAME 5.10.60-qnap #1 SMP Thu Jan 12 01:41:46 CST 2023 x86_64 GNU/Linux
Tous les appareils sont à jour avec leur dernière version, mais le TS-412 et le TS-851 ne sont pas de la même version, car le TS-421 est trop vieux pour être mis à jour avec la version 5.
Version TS-412 : 4.3.3.2211
TS-851 version : 5.0.1.2277
Edit #2 - Patch
Je peux contourner le problème en écrivant un script faisant ce que je veux exécuter et contenant des caractères accentués, puis en l'exécutant. Cela fonctionne, mais... ce n'est pas pratique.
Edit #3 - Nouveaux tests
locale -a
Il donne les mêmes résultats sur les deux QNAP :
C
en_US.utf8
POSIX
cat
Test
Dactylographie cat <Enter> <é>
le caractère apparaît. <CTRL+D>
le caractère apparaît à nouveau. <CTRL-D>
, cat
a quitté le pays.
vi
Test
Lorsque je lance vi
Je peux taper é
et il apparaît.
Les deux derniers tests m'indiquent qu'il y a quelque chose dans la ligne d'entrée Shell qui bloque certains caractères.