Question

J'ai une chaîne dans UCS-2 encodage . Je dois copier cette chaîne à une autre chaîne UCS-2. Avant de copier je dois calculer la longueur d'une chaîne UCS-2 pour l'allocation memeory.

Comment calculer la longueur d'une chaîne UCS-2?

Était-ce utile?

La solution

UCS2 ne porte pas d'informations sur la longueur de chaîne elle-même. Votre représentation de chaîne d'origine est soit 0 TERMINAISON, auquel cas vous pouvez simplement vérifier un 0 unité de code (une 0 valeur 16 bits), ou il est 0 terminé, auquel cas vous avez besoin d'out-of informations de bande de la longueur de la chaîne (par exemple une taille de mémoire tampon stockée séparément).

En général, UCS 2 est un sous-ensemble de codage UTF-16 ( http: // www.unicode.org/faq/basic_q.html#14 ). Par conséquent, vous devriez être bien avec des outils UTF-16, comme la bibliothèque de soins intensifs http: //site.icu- project.org/ .

Autres conseils

Cela dépend du type de chaîne que vous utilisez. S'il n'y a pas de type (juste un tampon de mémoire connu pour contenir une chaîne dans le codage UCS-2), vous devez savoir comment il était représenté. Il pourrait avoir un compte de longueur Prepended, ou être 0-fin comme au bon vieux char * simples « chaînes C ».

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top