UCS-2文字列やC ++でそのサイズの長さを計算するには?

StackOverflow https://stackoverflow.com/questions/2287621

  •  21-09-2019
  •  | 
  •  

質問

私は UCS-2 のエンコーディングの文字列を持っています。私は別のUCS-2文字列にこの文字列をコピーする必要があります。コピーする前に私がmemeory配分のためのUCS-2文字列の長さを計算する必要があります。

UCS-2文字列の長さを計算するには?

役に立ちましたか?

解決

UCS2は、文字列の長さ自体に関する情報を伝達しません。あなただけの0コード単位(つまり、16ビットの0値)をチェックすることができ、またはそれは0で終了ではありません、あなたはいくつかのアウト・オブする必要がある場合には、その場合にはあなたの元の文字列表現0で終了されますか、 (例えば、別々に格納されたバッファサイズなど)は、文字列の長さに関する帯域情報。

は一般的に、UCS 2は、UTF-16のサブセットである(のhttp:// www.unicode.org/faq/basic_q.html#14する)。 //site.icu-:したがって、あなたは、このようなICUライブラリ HTTPなどのUTF-16のツール、罰金する必要がありますproject.org/する

他のヒント

あなたが使用している文字列型に依存していること。何の種類(UCS-2エンコーディングの文字列を含むことが知られているだけのメモリバッファ)がない場合は、それが表現された方法を知っている必要があります。これは、先頭に追加長さ数を持つことができ、あるいは単なる古いchar *「C文字列」のように0で終了する。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top