Как включить поддержку Unicode в buildroot?

Как включить поддержку Unicode в buildroot?

Я хочу создать 32-битный x86 ISO-образ из buildroot, который может отображать символы Unicode. Как это сделать?

  • В make menuconfig, я установилBR2_ENABLE_LOCALE_WHITELIST="C en_US en_US.UTF-8"
  • В make busybox-menuconfig, я установил CONFIG_UNICODE_SUPPORT=y, CONFIG_UNICODE_USING_LOCALE=y, CONFIG_FEATURE_CHECK_UNICODE_IN_ENV=y, CONFIG_UNICODE_COMBINING_WCHARS=y, CONFIG_UNICODE_WIDE_WCHARS=y, CONFIG_UNICODE_BIDI_SUPPORT=y, CONFIG_UNICODE_NEUTRAL_TABLE=y,CONFIG_UNICODE_PRESERVE_BROKEN=y
  • На компилирующей машине (на базе Debian) я установил пакет localesи запустилsed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen; locale-gen

Однако при создании изображения текст Unicode, сохраненный в текстовых файлах или введенный в терминал, искажается.

Один из способов тестирования — запуск echo -e '\xe2\x82\xac'в оболочке. Это должно вывести символ евро, что и происходит на терминале моего Mac. Однако в полученном образе iso я вижу:

unfortunate # echo -e '\xe2\x82\xac'
â¬

Более полный контекст

решение1

на Debian есть некий unicode_startскрипт оболочки, который настраивает систему для UTF-8. Основные команды, которые вы должны выполнить в своей оболочке, следующие:

printf '\033%%G'
stty iutf8

Я нашел их в очень интересной ветке StackExchange:Как включить поддержку UTF-8 в консоли Linux?

Я также испытываю трудности с настройкой Unicode в моей системе buildroot, и эти команды немного помогли, но я все еще сталкиваюсь с проблемами со скриптами оболочки, закодированными в UTF-8, которые отказываются корректно выполняться в моей целевой системе.

Надеюсь, это поможет! Ура, Хьюз

Связанный контент