Назад | Перейти на главную страницу

Кодировка символов Cisco по умолчанию на консоли

Вопрос

Какая кодировка символов по умолчанию используется большинством устройств Cisco при обмене данными через консоль?

Задний план

Я разработчик программного обеспечения, пишу приложение, которое взаимодействует с несколькими устройствами cisco через их консольные порты (в основном, оно запускает команды конфигурации IOS и реагирует на определенную обратную связь, например на ошибки).

Мое программное обеспечение работает под mac / windows / linux, и каждая ОС имеет собственную систему кодировки символов по умолчанию. Поэтому мне нужно быть очень осторожным, когда я отправляю байты на консоль и когда я получаю байты с консоли. Если я не укажу правильную кодировку символов, все ломается. Например, когда я «нажимаю возврат» после отправки команды, в некоторых системах он «нажимает возврат» дважды, а не один раз! Или, когда я получаю данные и пытаюсь разобраться в них, программа запутается из-за неправильного преобразования байтов / символов.

Резюме

Если я включаю новый (или только что сброшенный) Cisco 3845 или 2955, подключаюсь через консоль и отправляю данные / байты / символы туда и обратно ...
... какую кодировку будет использовать устройство по умолчанию. Подозреваю, что это UTF-8.

Нет ничего сложнее, чем просто старый добрый ASCII. Я понимаю, что UTF-8 обратно совместим с этим, так что вы должны быть в порядке.

Кстати, я был на пути написания программ для управления и получения отчетов с различных устройств Cisco, я начал с использования консольных подключений, но через довольно короткое время понял, что это действительно не долгосрочное решение, вы закончите до использования SNMP для чего угодно сложного.

Основная причина этого заключается в том, что ответ от CLI не всегда согласован и почти наверняка будет меняться между выпусками IOS; вторая причина заключается в том, что SNMP, хотя и кажется сложным при первом просмотре, предназначен для получения информации из сети и изменения настроек. , является стандартным и всегда дает стабильные результаты. Просто мои 10 пенсов.

Если это американское оборудование, я думаю, я могу с уверенностью заявить, что он просто использует ASCII для своего обычного текста. Вероятно, он не будет выполнять какую-либо проверку набора символов, поэтому определяемые пользователем имена могут быть любым набором символов, если отдельные байты действительны для устройства. Если вы получаете тарабарщину от последовательного подключения, порт настроен неправильно. Когда я был моложе и действительно использовал последовательные порты на регулярной основе, я иногда мог распознать эту тарабарщину и определить, какая настройка была неправильной.

Что касается проблем с клавишей ввода, устройство будет использовать тот же символ для "ввода" независимо от того, подключаетесь ли вы из окон (где перевод строки \r\n) или unix (\n) или mac (\r) выберите тот, который работает правильно, и он всегда должен работать. В зависимости от того, как вы подключаетесь (непосредственно к устройству последовательного порта или берете под контроль приложение терминала?), Могут быть настройки, такие как «локальное эхо», из-за которого то, что вы вводите, будет напечатано на экране приложением терминала (большинство эхо-сигналов механизма текст для вас, поэтому включение локального эха приведет к дублированию всех букв)

Отказ от ответственности: я не разработчик программного обеспечения =)

Помогает ли приведенный ниже документ вообще? В нем обсуждается "набор символов" в ряде областей, включая значения по умолчанию. Я не совсем уверен, что это то же самое, что «кодировка символов», по крайней мере, в контексте, в котором вы спрашиваете.

http://www.cisco.com/en/US/docs/ios/12_1/configfun/command/reference/frd1003.html