如何在 buildroot 中啟用 Unicode 支援?

如何在 buildroot 中啟用 Unicode 支援?

我想從 buildroot 建立一個可以顯示 Unicode 字元的 32 位元 x86 ISO 映像。我怎樣才能做到這一點?

  • 在 中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=yCONFIG_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'在 shell 中運行。這應該會列印歐元符號,這在我的 Mac 終端上是這樣的。然而,在生成的 iso 映像中,我看到:

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

更全面的背景

答案1

在 Debian 上,有一些unicode_startshellscript 可以將系統設定為 UTF-8。您應該在 shell 中發出的主要命令是:

printf '\033%%G'
stty iutf8

我在非常有趣的 StackExchange 線程中找到了這些:如何在 Linux 控制台中啟用 UTF-8 支援?

我也在努力在我的 buildroot 系統上建立一個像樣的 Unicode 設置,這些命令有點幫助,但我仍然面臨著以 UTF-8 編碼的 shellscript 的問題,這些問題拒絕在我的目標系統上正確執行。

希望有幫助!乾杯,休格斯

相關內容