Почему символы, отличные от ASCII, отображаются с помощью вопросительного знака?

Я работаю над встроенным дистрибутивом linux на основе Yocto Morty.

Я использовал дистрибутив Ubuntu для создания следующих двух файлов:

  • fòò.dàt
  • bàr.dàt

Я сохранил файлы в pendrive и подключил pendrive к моей встроенной системе.

Я использовал PuTTY для подключения через последовательный интерфейс к встроенной системе и просмотрения содержимого Pendrive. Файлы перечислены ниже:

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?rd?t -rwxr-xr-x 1 root root 0 Mar 17 2017 f??.d?t 

Язык дистрибутива Ubuntu:

 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= 

Язык встроенного дистрибутива:

 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 

даже если суффикс .UTF-8 не объясняется. Я предполагаю, что встроенная система locale является UTF-8, потому что:

 root@imx6qsabresd:/media/linux_desktop# locale charmap UTF-8 

см. здесь: https://stackoverflow.com/a/42797421/5321161 для получения дополнительной информации.

Ниже списка локалей, которые я установил в моем встроенном дистрибутиве:

 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 настроен на использование UTF-8 в качестве удаленного набора символов.

Почему акцентированные символы заменяются вопросительными знаками?

  • Время загрузки Система SysV vs Systemd - systemd занимает ~ 2 секунды дольше!
  • Не удается установить gphoto2 на Yocto Linux
  • Сенсорный экран на встроенной Linux не может нажать / кликнуть
  • Yocto: Bitbake не запускает menuconfig
  • Имя указанной сети SAMBA больше не доступно
  • Что создает ./var/lib в моем изображении yocto?
  • Как отправить AT-команды на последовательный интерфейс в Yocto Linux?
  • Yocto Linux на Atom Z3735G Baytrail - Инициализация i915 дает пустой экран
  • One Solution collect form web for “Почему символы, отличные от ASCII, отображаются с помощью вопросительного знака?”

    Проблема была вызвана подвеской. Обычно я устанавливаю устройство без указания какой-либо опции. Например

     mount /dev/sdb1 /media 

    Результат:

     /dev/sdb1 on /media type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro) 

    Как описано здесь: https://linux.die.net/man/8/mount параметр iocharset по умолчанию: iso8859-1.

    Я попытался установить pendrive, указав опцию iocharset = utf8, и это решило проблему:

     mount -o iocharset=utf8 /dev/sdb1 /media 

    См. Следующие символы UTF-8, правильно отображаемые в консоли:

     root@imx6qsabresd:/media/win/mix# ls -la total 28 drwxr-xr-x 7 root root 4096 Mar 13 15:19 . drwxr-xr-x 9 root root 4096 Mar 16 2017 .. drwxr-xr-x 2 root root 4096 Mar 13 15:13 Île-de-France -rwxr-xr-x 1 root root 0 Mar 13 15:13 Île-de-France.txt drwxr-xr-x 2 root root 4096 Mar 13 15:14 madrileños -rwxr-xr-x 1 root root 0 Mar 13 15:15 madrileños.txt drwxr-xr-x 2 root root 4096 Mar 13 14:58 mà_però -rwxr-xr-x 1 root root 0 Mar 13 14:57 mà_però.txt drwxr-xr-x 2 root root 4096 Mar 13 15:12 Märkisch-Oderland -rwxr-xr-x 1 root root 0 Mar 13 15:13 Märkisch-Oderland.txt drwxr-xr-x 2 root root 4096 Mar 13 15:08 أبو ظبي -rwxr-xr-x 1 root root 0 Mar 13 15:09 أبو ظبي.txt 
    Linux и Unix - лучшая ОС в мире.