accents c unicode utf-16 unicode-string

accents - utf-16 table



Terminador de cuerda UTF-16 (3)

7.24.4.6.1 La función wcslen (del Estándar )

...

[#3] The wcslen function returns the number of wide characters that precede the terminating null wide character.

Y el carácter ancho nulo es L''/0''

¿Cuál es la secuencia del terminador de la secuencia para una secuencia UTF-16?

EDITAR:

Permítanme reformular la pregunta para intentar aclararla. ¿Cómo funciona la llamada a wcslen() ?


No hay ninguno. Los terminadores de cadenas no son parte de una codificación.

Por ejemplo, si tuviera la cadena ab , estaría codificada en UTF-16 con la siguiente secuencia de bytes: 61 00 62 00 . Y si tuvieras 大家 obtendrías 27-59-B6-5B . Entonces, como no puedes ver una secuencia de terminación predeterminada.


Unicode no define los terminadores de cadena. Su entorno o idioma lo hace. Por ejemplo, las cadenas C usan 0x0 como terminador de cadena, donde los lenguajes .NET no usan ningún terminador de cadena; definen un valor separado en la clase String para almacenar la longitud de la cadena.

Para responder a su segunda pregunta, wcslen busca un carácter L''/0'' terminación. Que a medida que lo leo , tiene una longitud de 0x00 bytes, dependiendo del compilador, pero probablemente será la secuencia de dos bytes 0x00 0x00 si está usando UTF-16 (codificación U + 0000, ''NUL'' )