주니퍼 네트웍스 디바이스에서 문자 인코딩의 작동 방식
Junos OS 구성 데이터 및 운영 명령 출력에는 7비트 ASCII 문자 집합의 외부에 있는 비 ASCII 문자가 포함될 수 있습니다. 특정 형식이나 특정 유형의 세션 내에서 운영 또는 구성 데이터를 표시할 때 소프트웨어는 이러한 문자를 이스케이프하고 인코딩합니다. 소프트웨어는 동등한 UTF-8 10진수 문자 참조를 사용하여 문자를 이스케이프하거나 인코딩합니다.
CLI는 텍스트, 집합 또는 JSON 형식으로 생성된 구성 데이터에서 ASCII가 아닌 모든 문자를 표시하려고 시도합니다. 또한 CLI는 텍스트 형식으로 생성된 명령 출력으로 이러한 문자를 표시하려고 시도합니다. 예외의 경우, CLI는 UTF-8 10진수 문자 참조를 대신 표시합니다. (예외 사례에는 XML 형식의 구성 데이터와 XML 또는 JSON 형식의 명령 출력이 포함됩니다.) NETCONF 및 Junos XML 프로토콜 세션에서 ASCII가 아닌 문자가 포함된 구성 데이터 또는 명령 출력을 요청하는 경우 유사한 결과가 표시됩니다. 이 경우 서버는 모든 형식에 대해 해당 문자에 대해 동등한 UTF-8 10진수 문자 참조를 반환합니다.
예를 들어, 타일드(ñ)가 있는 라틴어 소형 문자 n이 포함된 다음 사용자 계정이 디바이스에 구성되어 있다고 가정해 보겠습니다.
[edit] user@host# set system login user mariap class super-user uid 2007 full-name "Maria Peña"
결과 구성을 텍스트 형식으로 표시하면 CLI가 해당 문자를 인쇄합니다.
[edit] user@host# show system login user mariap full-name "Maria Peña"; uid 2007; class super-user;
CLI에서 결과 구성을 XML 형식으로 표시하면 해당 ñ 문자는 동등한 UTF-8 10진수 문자 참조 ñ
에 매핑됩니다. NETCONF 또는 Junos XML 프로토콜 세션에서 모든 형식으로 구성을 표시하는 경우에도 동일한 결과가 발생합니다.
[edit] user@host# show system login user mariap | display xml <rpc-reply xmlns:junos="http://xml.juniper.net/junos/17.2R1/junos"> <configuration junos:changed-seconds="1494033077" junos:changed-localtime="2017-05-05 18:11:17 PDT"> <system> <login> <user> <name>mariap</name> <full-name>Maria Peña</full-name> <uid>2007</uid> <class>super-user</class> </user> </login> </system> </configuration> <cli> <banner>[edit]</banner> </cli> </rpc-reply>
장비에 구성 데이터를 로드하면 이와 동등한 UTF-8 10진수 문자 참조를 사용하여 비 ASCII 문자를 로드할 수 있습니다.