如何在 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 的问题,这些问题拒绝在我的目标系统上正确执行。

希望有帮助!干杯,休格斯

相关内容