シナリオ
スペースが問題にならないデータベースまたはサーバーに、UTF-16 として保存されている XML ファイルが多数あります。XML ファイルとして他のシステムに取得する必要があるこれらのファイルの大部分を取得する必要があり、できるだけ少ないスペースを使用することが重要です。
問題
実際には、UTF-16 として保存されるファイルのうち、UTF-16 として保存する必要があるのは約 10% のみであり、残りは UTF-8 として安全に保存でき、問題ありません。UTF-16 にする必要があるものだけを UTF-8 にして、残りを UTF-8 にすることができれば、ファイル システムで使用するスペースを約 40% 減らすことができます。
データの優れた圧縮を使用しようとしましたが、これは便利ですが、UTF-16 で得られるのと同じ圧縮率が UTF-8 で得られ、UTF-8 圧縮も高速であることがわかりました。したがって、最終的にできるだけ多くのデータを UTF-8 として保存すると、非圧縮で保存するときにスペースを節約できるだけでなく、圧縮してもさらにスペースを節約でき、圧縮自体で時間を節約することさえできます。 .
ゴール
XML ファイルに UTF-16 を必要とする Unicode 文字が含まれている場合を把握し、必要な場合にのみ UTF-16 を使用できるようにします。
XML ファイルとデータに関する詳細
XML 自体のスキーマは制御しますが、ソースは使用する Unicode データを自由に提供できるため、Unicode の観点から値に入れることができる「文字列」のタイプは制御しません。ただし、これはまれであるため、10% の頻度でしか必要とされないものをサポートするために、毎回 UTF-16 を使用する必要はありません。
開発環境
.Net Framework 4.0 で C# を使用しています。
編集:解決策
解決策は、UTF-8 を使用することです。
この質問は、私の UTF の誤解に基づいていました。ありがとうございました!