さまざまな言語のローカライズされた文字列を含むことができるXMLファイルを解析しています(現時点では英語とスペイン語ですが、将来的には任意の言語になる可能性があります)、XMLパーサーのAPIはXML内のすべてのデータをUTF8でエンコードされたchar*。
データが解析された後、データを操作する必要があります(データ内でサブ文字列を検索する、文字列を連結する、サブ文字列の長さを決定するなど)。
strlen、strcatなどの標準関数を使用すると便利です。XMLパーサーから受け取る生データはchar *であるため、これらの標準文字列処理関数を使用してすべての操作を簡単に行うことができます。
ただし、これらはすべて、もちろん、文字列がNULLで終了するという仮定と要件を満たしています。したがって、私の質問は、char *として表される幅の広いデータがある場合、NULLターミネータ文字をデータの最後ではなくデータ内で使用できるかどうかです。
つまり、特定の言語の文字がそれを表すのに2バイトを必要とせず、1バイトで表される場合、他のバイトはNULLになるのでしょうか。