Quero construir uma imagem ISO x86 de 32 bits a partir do buildroot que possa exibir caracteres Unicode. Como eu posso fazer isso?
- Em
make menuconfig
, eu configureiBR2_ENABLE_LOCALE_WHITELIST="C en_US en_US.UTF-8"
- Em
make busybox-menuconfig
, eu configureiCONFIG_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
- Na máquina de compilação (baseada em Debian), instalei o
locales
pacote e executeised -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen; locale-gen
No entanto, quando eu construo a imagem, o texto Unicode salvo em arquivos de texto ou digitado no terminal sai distorcido.
Uma maneira de testar é executando echo -e '\xe2\x82\xac'
no shell. Isso deve imprimir o símbolo do euro, o que acontece no terminal do meu Mac. No entanto, na imagem iso resultante, vejo:
unfortunate # echo -e '\xe2\x82\xac'
â¬
Contexto mais completo
- Meu projeto principal está aquihttps://github.com/mrled/unfortunate/(observe os submódulos)
- O arquivo defconfig que estou usando está emhttps://github.com/mrled/unfortunate-browser-vm/blob/03dfb210d57a0e665da5cee108c2d9c052d66f5b/buildroot-v86/configs/v86_defconfig
- A configuração do busybox que estou usando está emhttps://github.com/mrled/unfortunate-browser-vm/blob/03dfb210d57a0e665da5cee108c2d9c052d66f5b/buildroot-v86/board/v86/busybox.config
- A configuração do kernel que estou usando está emhttps://github.com/mrled/unfortunate-browser-vm/blob/03dfb210d57a0e665da5cee108c2d9c052d66f5b/buildroot-v86/board/v86/linux.config
- Na verdade, este projeto foi projetado para ser executado no emulador x86 no navegador v86 (lado do cliente!), Então você
echo
mesmo pode tentar meu comando emhttps://infeliz.micahrl.com. (Pode levar de 15 a 30 segundos para inicializar a máquina virtual.)
Responder1
no Debian, existe algum unicode_start
shellscript que configura o sistema para UTF-8. Os principais comandos que você deve emitir em seu shell são:
printf '\033%%G'
stty iutf8
Eu encontrei isso no tópico muito interessante do StackExchange:Como posso ativar o suporte UTF-8 no console Linux?
Também estou lutando para ter uma configuração Unicode decente em meu sistema buildroot, e esses comandos ajudaram um pouco, mas ainda estou enfrentando problemas com shellscript codificado em UTF-8 que se recusam a ser executados corretamente em meu sistema de destino.
Espero que ajude ! Obrigada, Hugues