|
UNICODE в WinAVR |
|
|
|
 |
Ответов
|
Jul 31 2008, 15:06
|

Профессионал
    
Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357

|
Цитата(ukpyr @ Jul 31 2008, 17:57)  вообще-то WinAVR - это сборка GCC под Win, AVR-Libc к этому отношения не имеет Поэтому я пишу в этом разделе, а не в AVR Цитата(ukpyr @ Jul 31 2008, 17:57)  поэтому на счет поддержки UNICODE обратитесь к документации на GCC - ведь как-то работают другие программы с UNICODE  ... Ну да, в Visual Studio, например, ты просто берешь и пишешь:  И компилятор сразу все понимает без каких-то дополнительных ключей. В конце концов, юникод для того и придумывался, чтобы не думать о кодовых страницах! Цитата(ukpyr @ Jul 31 2008, 17:57)  есть там параметры -fexec-charset, -fwide-exec-charset, -finput-charset. Может тыкнете носом? У меня проблемы с поиском инфы в gcc-шной документации...  И, все-таки, вопрос к тем, кто делал USB-устройства: неужели вы набивали имя шестнадцатеричными числами?
Сообщение отредактировал 777777 - Jul 31 2008, 15:14
|
|
|
|
|
Jul 31 2008, 15:39
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(777777 @ Jul 31 2008, 19:06)  Ну да, в Visual Studio, например, ты просто берешь и пишешь:  И компилятор сразу все понимает без каких-то дополнительных ключей. В конце концов, юникод для того и придумывался, чтобы не думать о кодовых страницах! А вот Вы не поленитесь и подумайте, в какой кодировке сохранен этот файл? Случайно не в unicode? А Ваш .с файл (с L"Имя устройства";) в какой? В кодовой станичке 1251? И компилятор дожен сам угадать кодоваю страницу? А что будет этот файл тоже сохранить в unicode? Анатолий.
Сообщение отредактировал aesok - Jul 31 2008, 15:40
|
|
|
|
|
Aug 1 2008, 06:44
|

Профессионал
    
Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357

|
Цитата(aesok @ Jul 31 2008, 19:39)  А вот Вы не поленитесь и подумайте, в какой кодировке сохранен этот файл? Случайно не в unicode? Не стоит считать всех идиотами. Разумеется в unicode. Только там для этого не приходится извращаться. Цитата(aesok @ Jul 31 2008, 19:39)  А Ваш .с файл (с L"Имя устройства";) в какой? В кодовой станичке 1251? И компилятор дожен сам угадать кодоваю страницу? Вообще-то нет икаких проблем чтобы угадать кодовую страницу. Простейший notepad позволяет сохранять текстовые файлы в любой кодировке и распознает ее при открытии. Цитата(aesok @ Jul 31 2008, 19:39)  А что будет этот файл тоже сохранить в unicode? Тогда он не будет распознаваться IDE-шным редактором. Да-да, я понимаю, она не имеет отношения к gcc. Один пришивает рукав, другой пуговицы. Только что делать юзеру? Похоже так и придется набивать имя в хексе. Цитата(ukpyr @ Jul 31 2008, 20:36)  эти параметры описаны тут : http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gc...ocessor-Options-finput-charset задает кодировку исходника, -fexec-charset - задает кодировку, используемую внутри программы для char строк (по умолчанию UTF-8), -fwide-exec-charset задает кодировку, используемую внутри программы для wchar строк (UTF-32/16). Спасибо. Осталось выяснить, что писать после charset=... Там ссылаются на iconv library routine, а в ее хелпе никаких значений не приводится. Кстати, попробовал написать -finput-charset=1251, в результате получил: cc1.exe: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate.  ( Цитата(ukpyr @ Jul 31 2008, 20:36)  В какой кодировке у вас текст ? В той, которую понимает IDE, т.е. в ANSI. Других она не понимает.
Сообщение отредактировал 777777 - Aug 1 2008, 06:48
|
|
|
|
|
Aug 1 2008, 07:04
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(777777 @ Aug 1 2008, 10:44)  Осталось выяснить, что писать после charset=... Там ссылаются на iconv library routine, а в ее хелпе никаких значений не приводится. http://www.gnu.org/software/libiconv/CP1251 Это в последний раз когда я за вас думаю. Анатолий.
Сообщение отредактировал aesok - Aug 1 2008, 07:13
|
|
|
|
|
Aug 1 2008, 13:49
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(777777 @ Aug 1 2008, 11:43)  Здесь думать не надо, здесь надо уметь искать gnu-тую информацию, а это нелегко. Даже в MSDN при всей ее уродливости можно найти гораздо легче. www.google.com Анатолий.
|
|
|
|
|
Aug 1 2008, 14:14
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
У меня на -finput-charset ругается более определённо: Код error: no iconv implementation, cannot convert from UTF-8 to CP866 То же самое и с CP1251. Тогда я сделал проще. 1. Написал строчку в main.c: Код int Name[] PROGMEM = L"Супер-пупер"; 2. Открыл main.c в блокноте, и сохранил его в формате UTF-8 (под именем main.txt, чтобы остальные строковые константы не испортить). 3. Открыл main.txt в обычном ascii-редакторе (у меня это редактор FAR-а) и скопировал получившуюся строчку (она выглядит примерно так): Код int Name[] PROGMEM = L"РЎС_РїРчС_-РїС_РїРчС_"; в мой main.c. И телемаркет ©
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Aug 4 2008, 09:42
|

Профессионал
    
Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357

|
Цитата(AHTOXA @ Aug 1 2008, 18:14)  1. Написал строчку в main.c: Код int Name[] PROGMEM = L"Супер-пупер"; 2. Открыл main.c в блокноте, и сохранил его в формате UTF-8 (под именем main.txt, чтобы остальные строковые константы не испортить). 3. Открыл main.txt в обычном ascii-редакторе (у меня это редактор FAR-а) и скопировал получившуюся строчку в мой main.c. В общем, я сделал примерно так же за следующими исключениями: 1. создал файл с единственной строкой int Name[] PROGMEM = L"имя"; и #include'ил ее в нужном месте в программу. 2. файл создавал редактором Visal Studio, так как блокнот создает utf-8 с сигнатурой в начале файла, а компилятор на эти символы ругается; у Visal Studio больше возможностей редактирования и им можно создать файл в utf-8 без сигнатуры, даже когда открываешь этот файл повторно, он догадывается о его кодировке (несмотря на отсутствие сигнатуры) и предлагает открыть именно как utf-8 Цитата(amw @ Aug 1 2008, 23:45)  Код #define UNICODE(x) (x), 0x00 Думаю модифицировать макрос для нужного языка неслжоно. А я думаю что сложновато. Цитата(amw @ Aug 1 2008, 23:45)  PS: Желание использовать какой-либо иной язык, кроме английского, в дескрипторах было напрочь отбито, когда устройство через 2 года производства вставили в ПК с Milenium (помните такую версию винды?) Я знаю людей, которые до сих пор пишут комментари по-русски латинскими буквами на том основании, что когда они работали в ДОСе (!) то там было много кодировок и их комментарий мог где-то не прочитаться. Вы чем-то на него похожи: миллениум всеми успешно забыт, а вы все боитесь русских букв. Хотя юникод придуман как раз для того, чтобы он был единственной кодировкой. Хорошо известно, что юникод поддерживают только NT-based системы; вместо того, чтобы отзывать 1(0...) устройств, следовало бы в инстукции перечислить ОС с которыми ваше устройство работает. Цитата(amw @ Aug 1 2008, 23:45)  Мои исходники всегда в UTF-8. И чем это мешае компилятору? Он соответствует ASCII относительно собственно кода. Тем, что его не понимает редактор AVR-студии. Впрочем, если в нем нет русских букв, то несколько странно утверждать, что он в utf-8
Сообщение отредактировал 777777 - Aug 4 2008, 09:44
|
|
|
|
Сообщений в этой теме
777777 UNICODE в WinAVR Jul 31 2008, 04:42 zltigo Цитата(777777 @ Jul 31 2008, 06:42) ...то... Jul 31 2008, 07:12 777777 Цитата(zltigo @ Jul 31 2008, 11:12) Увы, ... Jul 31 2008, 09:51  amw Цитата(777777 @ Jul 31 2008, 12:51) Иногд... Jul 31 2008, 11:04   mdmitry Цитата(amw @ Jul 31 2008, 15:04) Прежде ч... Jul 31 2008, 11:20   zltigo Цитата(amw @ Jul 31 2008, 13:04) Прежде ч... Jul 31 2008, 12:19   777777 Цитата(amw @ Jul 31 2008, 15:04) Прежде ч... Jul 31 2008, 12:55    amw Цитата(777777 @ Jul 31 2008, 15:55) Ведь ... Aug 1 2008, 19:45     AHTOXA Цитата(amw @ Aug 2 2008, 01:45) А разве U... Aug 1 2008, 21:40      amw Цитата(AHTOXA @ Aug 2 2008, 00:40) Компил... Aug 4 2008, 18:24 ukpyr эти параметры описаны тут :
http://gcc.gnu.org/onl... Jul 31 2008, 16:36 ukpyr Ваш редактор не знает UTF-8 ? o_O
возмите хотя-бы ... Aug 1 2008, 17:30 AHTOXA Цитата(ukpyr @ Aug 1 2008, 23:30) Ваш ред... Aug 1 2008, 18:27 ukpyr ЦитатаХорошо известно, что юникод поддерживают тол... Aug 4 2008, 19:04 777777 Цитата(ukpyr @ Aug 4 2008, 23:04) это с ... Aug 5 2008, 05:30  Andrew O. Shadoura Цитата(777777 @ Aug 5 2008, 08:30) Запуст... Aug 9 2008, 22:56
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|