C# で XmlSerializer を使用して ASCII/UTF-8 として保存した XML ファイルがあります。1 つのフィールドには、フォルダー パスの場所が含まれています。英語以外の Windows システムでは、パス フィールドに特殊文字が含まれている可能性があることを最近発見しました。ファイル全体を Unicode/UTF-16 として保存することもできますが、数文字のためにファイル サイズが 2 倍になります。
非ASCII文字をASCII文字列に挿入する方法はありますか?
ASCII/UTF-8 というものはありません。これらは 2 つの異なるエンコーディングであり、実際には異なる文字セットをエンコードします。現在、あなたは実際には ASCII を使用しているか、おそらく Windows ANSI を使用していると思われます。
UTF-8 は Unicode の完全なエンコーディングです。ファイルに ASCII 文字のみが含まれている場合、UTF-8 エンコードは ASCII エンコードと同じです。また、ファイルの大部分が英語である場合、UTF-8 は最小のファイルを生成する Unicode エンコーディングです。
結論: UTF-8 を使用します。