エンコーディング (UTF-8,16,32) に関係なく、文字列を画面に出力したいと思います。この文字列は char 配列で表されるため、null バイトを無視して stdout への出力を続行する必要があります。これにより、printf の家族や友人は問題外になります。
char text[] = { 0x00, 0x55, 0x00, 0x6E, 0x00, 0x69, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x65 };
fwrite( text, sizeof(char), sizeof(text), stdout );
この目的のために、上記のソリューションを選択して、すべての UTF エンコーディング形式を印刷できるようにしました。特定の端末では文字が正しく表示されないことは理解していますが、アプリケーションの外部で構成可能なオプションであるため、それは私の懸念事項ではありません。
私のアプリケーションには、ロードするメッセージ カタログ (en_EN.UTF-8 など) に関する設定がありますが、現在選択されているロケールに基づいてコードで文字列変換を行う必要がないようにしたいと考えています。
公開する前に、このアプローチのレビューをお願いできますか?