思科在控制台上的默认字符编码

当通过控制台进行通信时,大多数Cisco设备使用的默认字符编码是什么?

背景

我是一名软件开发人员,编写一个应用程序,通过控制台端口与几个思科设备进行交互(基本上,它运行IOSconfiguration命令并响应某些反馈,如错误)。

我的软件在mac / windows / linux下运行,每个操作系统都有自己的默认字符编码系统。 所以当我将字节发送到控制台以及从控制台接收字节时,我必须非常小心。 如果我没有指定正确的字符编码,东西会以怪异的方式破解。 就像我在发送命令后按“回车”一样,在某些系统上,它会“按回车”两次,而不是一次! 或者,当我收到数据并试图理解它时,程序会被不正确的字节/字符转换弄糊涂。

概要

如果我打开一个新的(或刚刚重置的)Cisco 3845或2955,并通过控制台连接并来回发送数据/字节/字符…
…默认情况下,设备使用什么编码。 我怀疑是UTF-8。

如果它的美国装备,我想我可以安全地说,它只是使用ASCII的正常文本。 它可能不会执行任何types的字符集检查,所以用户定义的名称可以是任何字符集,只要单个字节对于设备而言是有效的。 如果您从串行连接收到乱码,则端口configuration不正确。 当我年轻的时候,经常使用串口,​​我有时会认识到这种乱码,并确定哪个设置是错误的。

至于使用回车键的问题,无论您是从Windows(其中换行符是\r\n )还是unix( \n )或mac( \r )连接,设备都会使用相同的字符进行“回车”正确的工作,它应该始终工作。 根据您的连接方式(直接连接到串口设备或者控制terminal应用程序?),可能会有像本地回显这样的设置,导致您input的内容被terminal应用程序打印在屏幕上(大多数的回声文本给你,所以打开本地回声将导致所有的字母被复制)

没有比简单的旧ASCII更复杂的了。 我知道UTF-8是向后兼容的,所以你应该可以。

顺便说一句,我一直在写程序来控制和从各种思科盒子得到报告的路线,我开始使用控制台连接,但在相当短的时间内意识到这不是一个长期的解决scheme,你会结束使用SNMP来完成任何复杂的事情。

主要原因是CLI的响应并不总是一致的,并且在IOS的版本之间几乎肯定会发生变化,第二个原因是,SNMP虽然在第一次查看时看起来很复杂,但却是为从networking获取信息和更改设置而devise的,是标准的,并将始终给出一致的结果。 只是我的10便士。

免责声明:我不是软件开发者=)

下面的文档有帮助吗? 它讨论了一些领域的“字符集” – 包括默认值。 我不太确定这是否与“字符编码”一样,至less在你问的上下文中。

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