Pregunta

Tengo una cadena en UCS-2 codificación. Necesito copiar esta cadena a otra cadena de UCS-2. Antes de copiar lo que necesito para calcular la longitud de una cadena UCS-2 para la asignación memeory.

Cómo calcular la longitud de una cadena UCS-2?

¿Fue útil?

Solución

UCS2 no lleva información sobre sí misma longitud de cadena. Su representación de cadena original, o bien es 0 terminados, en cuyo caso sólo se puede comprobar si hay una unidad de código 0 (es decir, un valor de 16 bits 0), o no es terminado en 0, en cuyo caso se necesita un poco fuera de la información de banda de la longitud de la cadena (tal como un tamaño de búfer almacenada por separado).

En general, UCS 2 es un subconjunto de UTF-16 ( http: // www.unicode.org/faq/basic_q.html#14 ). Por lo tanto, usted debe estar bien con UTF-16 herramientas, tales como la biblioteca UCI http: //site.icu- project.org/ .

Otros consejos

Eso depende del tipo de cadena que está utilizando. Si no hay ningún tipo (sólo un búfer de memoria se sabe que contiene una cadena de codificación UCS-2), usted tiene que saber cómo se ha representado. Podría tener una cuenta de longitud antepuesto, o sea 0-terminada al igual que char * "cadenas de C" llanura de edad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top