2017-07-17 1 views

Répondre

1

Il est probablement un codage UTF-16 d'une chaîne Unicode. Voici un exemple en utilisant Python:

>>> u"Premium".encode("utf16") 
'\xff\xfeP\x00r\x00e\x00m\x00i\x00u\x00m\x00' 
#  ^^^^^^^ 

Après le marqueur d'octet pour indiquer boutisme, vous pouvez voir des lettres en alternance et des octets nuls.


\xff\xfe est le marqueur d'ordre des octets; cela indique que l'octet de poids faible de chaque valeur de 16 bits vient en premier. (Si l'octet de poids fort venait en premier, le marqueur d'octet serait \xfe\xff, il n'y a rien de particulièrement significatif à savoir quel marqueur veut dire quoi.)

Chaque caractère est ensuite codé comme une valeur de 16 bits. Pour de nombreuses valeurs, le codage UTF-16 est simplement la simple représentation 16 bits non signée de son point de code Unicode. Plus précisément, les valeurs ASCII 8 bits utilisent simplement un octet nul comme octet de poids fort et sa valeur ASCII comme octet de poids faible.

+0

Cela a du sens, merci! – sudo

+0

Je ne comprends pas comment '\ xff \ xfeP \ x00r \ x00e \ x00m \ x00i \ x00u \ x00m \ x00' est "Premium", auriez-vous l'amabilité d'expliquer? – CIsForCookies