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'' )