ジュニパーネットワークスデバイスでの文字エンコーディングの仕組み
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 文字をロードできます。