すべての場合にこれらをエスケープする必要があることはわかっています。
quot "
amp &
apos '
lt <
gt >
しかし、アクセントのある国際的な文字やロシア語の文字についてはどうでしょうか。エンコーディング命令が UTF-8 に設定されている場合、このタイプの文字をエスケープする必要がありますか?
エンコード命令を ASCII に設定するとどうなりますか? それらすべての文字もエスケープする必要がありますか?
これは、Nokogiri(lib2xml) を使用して再現しようとしている (レガシー システムからの) XML のサンプルです。
<?xml version="1.0" encoding="UTF-8"?>
<DESCRIPTION lang="rus">
<SHORT_DESCRIPTION>МОДУЛЬ- ELECTRONIC OUTPUT 120 V DC 5 mA</SHORT_DESCRIPTION>
<LONG_DESCRIPTION>МОДУЛЬ- ТИП ELECTRONIC OUTPUT ВХОД 120 V DC ВЫХОД 5 mA ИСТОЧНИК ПИТАНИЯ 120 V DC ДОПОЛНИТЕЛЬНАЯ ДЕТАЛЬ 1 ANALOG SM322-8S TOR</LONG_DESCRIPTION>
</DESCRIPTION>
サンプルの命令には UTF-8 と書かれていますが、多くの文字がエスケープされていることがわかります。この文字は、ASCII エンコーディング命令を指定した場合にのみエスケープされます。これが私を混乱させているものです。
編集 2: Nokogiri にエンコーディング命令を渡さない場合、結果の XML はすべてのロシア語文字をネイティブのキリル文字のままにしますが、複製する必要がある XML とは一致しません。