유니코드 문자를 표시할 수 있는 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
- 내가 사용하고 있는 busybox 구성은 다음과 같습니다.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
데비안에는 UTF-8용 시스템을 설정하는 쉘스크립트 가 있습니다 . 쉘에서 실행해야 하는 주요 명령은 다음과 같습니다.
printf '\033%%G'
stty iutf8
매우 흥미로운 StackExchange 스레드에서 이를 발견했습니다.Linux 콘솔에서 UTF-8 지원을 활성화하려면 어떻게 해야 합니까?
또한 내 빌드루트 시스템에 알맞은 유니코드 설정을 하는 데 어려움을 겪고 있으며 해당 명령이 약간 도움이 되었지만 대상 시스템에서 올바르게 실행되지 않는 UTF-8로 인코딩된 쉘스크립트 관련 문제에 여전히 직면하고 있습니다.
도움이 되었기를 바랍니다! 건배, 휴그