VVB (18.10.2013 13:44, просмотров: 4379) MBedder
Поддержка русских символов в приложении. Имеется: GNU ARM toolchain, eclipse, Windows 7, PuTTY, web (git, confluence, fisheye).
Требуется: русские символы в выводимых мною строках и комментариях к коду везде, в кодировке UTF8 (в основном, для автоматизации работы с web)
В линуксе вопросов не было: настроил везде UTF8 и счастлив.
Однако, под виндой всё через зад.
1. в eclipse настроил UTF-8. Оно действительно так и есть.
2. компилятор GCC, сволочь, мои строки wchar_t str[]=L"Bla-бла"; кодирует четырёхбайтным значением каждого символа (в stddef.h #define __WCHAR_TYPE__ int). Соответственно, функции вывода строки по UARTsend(str, wcslen(str)*sizeof(wchar_t)) выводят по 4 байта на каждый символ в строке.
3. экспериментально выяснил, что мои строки кодируются в UTF16-LE. Однако, нигде ни слова не написано об этом.
4. PuTTY не поддерживает UTF16
5. используемые в тулчейне функции работы с локалью не работают, имеется поддержка всего одной локали с именем "C".
Мне что, для поддержки UTF-8 требуется собирать свой тулчейн?
Используемые флаги сборки тулчейна GNU ARM toolchain:
Using built-in specs.
COLLECT_GCC=D:\GNU Tools ARM Embedded\4.7 2013q2\bin\arm-none-eabi-gcc.EXE
COLLECT_LTO_WRAPPER=d:/gnu\ tools\ arm\ embedded/4.7\ 2013q2/bin/../lib/gcc/arm-none-eabi/4.7.4/lto-wrapper.exe
Target: arm-none-eabi
Configured with: /home/build/work/GCC-4-7-build/src/gcc/configure --build=i686-linux-gnu --host=i586-mingw32 --target=
rk/GCC-4-7-build/install-mingw/lib --infodir=/home/build/work/GCC-4-7-build/install-mingw/share/doc/gcc-arm-none-eabi/
mldir=/home/build/work/GCC-4-7-build/install-mingw/share/doc/gcc-arm-none-eabi/html --pdfdir=/home/build/work/GCC-4-7-
float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdc
ld --with-headers=yes --with-newlib --with-python-dir=share/gcc-arm-none-eabi --with-sysroot=/home/build/work/GCC-4-7-
ingw/host-libs/usr --with-gmp=/home/build/work/GCC-4-7-build/build-mingw/host-libs/usr --with-mpfr=/home/build/work/GC
t-libs/usr --with-ppl=/home/build/work/GCC-4-7-build/build-mingw/host-libs/usr --with-cloog=/home/build/work/GCC-4-7-b
bs/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-pkgversion='GNU Tools for ARM
Thread model: single
gcc version 4.7.4 20130613 (release) [ARM/embedded-4_7-branch revision 200083] (GNU Tools for ARM Embedded Processors)