Программирование ARM: решение проблем, FAQ IAR 8.30: русский текст в редакторе кода Thu, November 21 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


IAR 8.30: русский текст в редакторе кода Печать
Добавил(а) microsin   

Если раньше, во времена Windows XP и Windows 7, среда разработки IAR (по крайней мере в версии 5.5 и 6.5) поддерживала очень удобную однобайтовую кодировку текста ANSI для русского текста, то теперь, с появлением Windows 10 можно использовать только кодировку UTF-8.

[Как добиться редактирования русского текста IAR 8.30]

Процесс по шагам:

1. Tools -> Options... -> Common Fonts -> выберите, если это еще не выбрано, шрифт Courier, Набор символов: Кириллица -> OK.

2. Tools -> Options... -> Editor -> File Encoding -> Default character encoding: UTF-8. Также поставьте галочку Auto-detect character encoding. В выпадающем списке "EOL characters:" выберите PC, это задает традиционное двухсимвольное окончание строк 0x0D, 0x0A (CRLF) для текста на платформе Windows.

3. Теперь осталось все старые файлы текста перекодировать в кодировку UTF-8. К сожалению, в самом IAR это сделать нельзя, придется воспользоваться сторонними инструментами.

Для этой цели я пользуюсь любимым текстовым редактором Notepad2. Чтобы проверить / поменять кодировку файла, откройте этот файл в Notepad2, и выберите в меню File -> Encoding -> UTF-8. Редактор предупредит о смене кодировки файла: "Переключение кодировки с ANSI на не-ANSI (и наоборот) может заменить не поддерживаемый текст символами по умолчанию, и история Отмены (Undo) будет очищена. Продолжить?":

Notepad2 encoding ANSI change

Ответьте положительно "Yes", и текст будет перекодирован в UTF-8, сохраните файл. Если этот файл был открыт в редакторе IAR, то он будет автоматически обновлен, и теперь Вы сможете редактировать в нем русский текст.

Имейте в виду, что теперь каждый символ текста может кодироваться не одним, а двумя байтами. Это чревато дополнительными неудобствами при выводе русского текста в последовательные терминалы, например в UART. Если на выходе последовательного порта нежелателен поток символов в кодировке UTF-8, то перед физическим выводом русского текста потребуется дополнительная перекодировка из UTF-8 в ANSI или в КОИ8.

[А если все-таки нужна однобайтная русская кодировка?]

Иногда я все же оставляю однобайтную кодировку русского текста ANSI (Tools -> Options... -> Editor -> File Encoding -> Default character encoding: System). Это бывает необходимо в простых системах вывода текста в терминал или на дисплей (или если нужно работать с длинными и русскими именами в FatFS), когда нецелессобразно делать перекодировку из UTF8 в ANSI и обратно.

Редактор IAR нормально показывает русские буквы в кодировке ANSI (ASCII-Windows1251), просто не дает редактировать русский текст (нельзя вводить русские буквы). В этом случае для правки русского текста в строках и комментариях я пользуюсь внешним редактором (notepad2 или notepad++).

 

Комментарии  

 
0 #2 Руслан А 23.04.2022 02:32
Спасибо, помогло! Некоторые файлы сразу сохраняются как UTF-8 в IAR 8.3, другим требуется перекодировка во внешнем редакторе.
Цитировать
 
 
+1 #1 John Wayne 06.03.2020 13:53
Огромное спасибо!!! ;-)
Очень помогло! 8)
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Top of Page