유니코드 문자를 표시할 수 있는 buildroot에서 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=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
그런데 이미지를 빌드하면 텍스트 파일에 저장되거나 터미널에 입력된 유니코드 텍스트가 깨집니다.
제가 테스트한 한 가지 방법은 echo -e '\xe2\x82\xac'
셸에서 실행되는 것이었습니다. 그러면 내 Mac 터미널에서 보이는 것과 같은 유로 기호가 인쇄됩니다. 그러나 결과 iso 이미지에는 다음이 표시됩니다.
unfortunate # echo -e '\xe2\x82\xac'
â¬
더 풍부한 배경
- 내 주요 프로젝트는 여기에 있습니다https://github.com/mrled/unfortunate/(하위 모듈 참고)
- 내가 사용하는 defconfig 파일은 다음 위치에 있습니다.https://github.com/mrled/unfortunate-browser-vm/blob/03dfb210d57a0e665da5cee108c2d9c052d66f5b/buildroot-v86/configs/v86_defconfig
- 내가 사용하고 있는 비지박스 구성은 다음 위치에 있습니다.https://github.com/mrled/unfortunate-browser-vm/blob/03dfb210d57a0e665da5cee108c2d9c052d66f5b/buildroot-v86/board/v86/busybox.config
- 내가 사용하는 커널 구성은 다음 위치에 있습니다.https://github.com/mrled/unfortunate-browser-vm/blob/03dfb210d57a0e665da5cee108c2d9c052d66f5b/buildroot-v86/board/v86/linux.config
- 이 프로젝트는 실제로 v86 브라우저 내(클라이언트!) x86 에뮬레이터에서 실행되도록 설계되었으므로
echo
내 명령을 직접 시도해 볼 수 있습니다.https://unfortunate.micahhrl.com. (가상 머신을 시작하는 데 15~30초 정도 걸릴 수 있습니다.)
답변1
unicode_start
Debian에는 시스템을 UTF-8로 설정할 수 있는 쉘스크립트 가 있습니다 . 셸에서 실행해야 하는 주요 명령은 다음과 같습니다.
printf '\033%%G'
stty iutf8
매우 흥미로운 StackExchange 스레드에서 다음을 발견했습니다.Linux 콘솔에서 UTF-8 지원을 활성화하는 방법은 무엇입니까?
또한 내 buildroot 시스템에서 적절한 유니코드 설정을 얻으려고 노력하고 있으며 이러한 명령이 약간 도움이 되지만 대상 시스템에서 올바르게 실행되지 않는 UTF-8로 인코딩된 쉘스크립트 문제에 여전히 직면하고 있습니다.
도움이 되었기를 바랍니다! 건배, 휴그