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