ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
13 июля
455206
VVB (18.10.2013 13:44, просмотров: 4080) 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)