I'm working on an embedded linux distribution based on Yocto Morty.
I have used an Ubuntu distribution to create the following two files:
- fòò.dàt
- bàr.dàt
I have stored the files into a pendrive and connected the pendrive to my embedded system.
I have used PuTTY to connect via serial to the embedded system and browse the content of the pendrive. The files are listed as follow:
root@imx6qsabresd:/media/linux_desktop# ls -la
total 8
drwxr-xr-x 2 root root 4096 Mar 17 2017 .
drwxr-xr-x 9 root root 4096 Jan 1 1970 ..
-rwxr-xr-x 1 root root 0 Mar 17 2017 b?r.d?t
-rwxr-xr-x 1 root root 0 Mar 17 2017 f??.d?t
The locale of the Ubuntu distribution is:
user@user-VirtualBox:~$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=it_IT.UTF-8
LC_TIME=it_IT.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=it_IT.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=it_IT.UTF-8
LC_NAME=it_IT.UTF-8
LC_ADDRESS=it_IT.UTF-8
LC_TELEPHONE=it_IT.UTF-8
LC_MEASUREMENT=it_IT.UTF-8
LC_IDENTIFICATION=it_IT.UTF-8
LC_ALL=
The locale of the embedded distribution is:
root@imx6qsabresd:/media/linux_desktop# locale
LANG=en_US
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=en_US
even if the .UTF-8 suffix isn't explicited I assume the embedded system locale is UTF-8 because:
root@imx6qsabresd:/media/linux_desktop# locale charmap
UTF-8
see here: https://stackoverflow.com/a/42797421/5321161 for further details.
Below the list of locales I've currently installed in my embedded distribution:
root@imx6qsabresd:/media/linux_desktop# locale -a
C
de_DE
en_GB
en_GB.ISO-8859-1
en_US
en_US.ISO-8859-1
fr_FR
POSIX
zh_CN
PuTTY terminal emulator is configured to use UTF-8 as remote character set.
Why accented characters are replaced by question marks?
en_US.UTF-8
) Do you have a clue on how the file names are actually written on the disk? It may not be UTF at all. You should do some tests that don't rely on the existing saved file names to make sure the communication link is not partially responsible for the issue either.ls | LC_ALL=C send -n l
on the embedded system? Or it could very well be that thatls
doesn't support localisation (though I'd expect to seef????.d??t
if it were UTF-8 characters).sed
, notsend
. Or useod -tx1 -tc