I have two QNAPs that I can connect using SSH:
- TS-412
- TS-851
On the TS-851, right after login, if I type "é" on my keyboard, it shows "é" on the screen. On the other side, the TS-412, doesn't print the character on the screen. So, I can't access anything containing any accented characters (still through SSH).
I searched and all I find was about an SMB issue, but that's not my case. Shared folders appear correctly. Listing the folders via SSH shows up all accented characters. But, typing, and pasting one doesn't get to the box. Even auto-completion of paths strips the accented characters.
The locale is the same on both. Everything seems the same, but clearly, something is not.
I know QNAP has there own Linux flavor and I already asked in their forums, but in case of someone here would know. Because, I think this issue seems more like a generic Linux issue (not saying it is all over, but it is not specific to QNAPs).
That's really annoying!
Edit #1 - Answering questions
Execution of locale on my 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=
Execution of locale on the 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
Execution of locale on the 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
Output for echo $TERM $SHELL the same on all machines:
xterm-256color /bin/bash
Output for uname -a on my computer, TS-412, TS-851 (in order):
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
All the devices are up to date to their latest version, but TS-412 and TS-851 aren't the same version, because the TS-421 is too old to be updated to version 5.
TS-412 version: 4.3.3.2211
TS-851 version: 5.0.1.2277
Edit #2 - Patch
I can circumvent the issue writing a script doing what I want to execute containing accented chars and then run it. It works, but... not practical.
Edit #3 - New tests
locale -a
It gives the same results on both QNAPs:
C
en_US.utf8
POSIX
cat test
Typing cat <Enter> <é>, the character appears. <CTRL+D>, the character appears again. <CTRL-D>, cat exited.
vi test
When I launch vi I can type é and it appears.
The last two tests tell me that there is something in the shell input line that blocks some characters.