質問: C# Windows Formsアプリ開発で多言語対応を進めており、 データベース側(Oracle)の文字コードも含めUnicodeで多言語に対応します。 ただ、Unicodeといってもいくつかエンコーディングの方法(UTF-8,UTF-16)が あると思います。 ユニコードで多言語対応する場合、エンコーディングの方法は何が適しているのか 知見のある方、ご教示ください。 現状、データベース、アプリ共にUTF-8を前提としようと考えております。
回答: C#自身は`string`型(.NET Frameworkにて`System.String`クラス)が提供されていますので、それを利用することをお勧めします。 その上で、データベースはデータベースで推奨されるエンコーディングを選択すべきです。例えばSQL ServerではUnicodeのサポートの項目にて > > 複数の言語を反映する文字データを格納する場合は、非Unicodeデータ型 (`char`、`varchar`、および`text`) ではなく、Unicodeデータ型 (`nchar`、`nvarchar`、および`ntext`) を常に使用してください。 > > > と説明されています。OracleにもOracleでの適切な選択肢が提示されていることと思います。 「アプリ」につきましては何を指しているのかわかりませんでした。