UCS-2エンコーディングの文字列があります。この文字列を別のUCS-2文字列にコピーする必要があります。コピーする前に、メモリ割り当て用のUCS-2文字列の長さを計算する必要があります。
UCS-2ストリングの長さを計算する方法は?
UCS2は、文字列の長さ自体に関する情報を伝達しません。元の文字列表現は0で終了している場合は、0コード単位(つまり、16ビットの0値)をチェックするか、0で終了していない場合は、いくつかの範囲外が必要です。文字列の長さに関するバンド情報(個別に保存されたバッファサイズなど)。
一般に、UCS 2はUTF-16のサブセットです(http://www.unicode.org/faq/basic_q.html#14)。したがって、ICUライブラリhttp://site.icu-project.org/などのUTF-16ツールで問題ないはずです。
これは、使用している文字列の種類によって異なります。タイプがない場合(UCS-2エンコーディングの文字列を含むことがわかっているメモリバッファのみ)、それがどのように表現されたかを知る必要があります。長さのカウントを前に付けることも、昔ながらのchar *
「C文字列」のように0で終了することもできます。