Dans. c #
Nous pouvons utiliser les classes ci-dessous pour effectuer l'encodage:
System.Text.Encoding.UTF8
System.Text.Encoding.UTF16
System.Text.Encoding.ASCII
Pourquoi n'y a-t-il pas de System.Text.Encoding.Base64
?
Nous ne pouvons utiliser que la méthode Convert.From(To)Base64String
, quelle est la particularité de base64?
Puis-je dire que base64 est la même méthode de codage que UTF-8? Ou UTF-8 est l'un des base64?
UTF-8 et UTF-16 sont des méthodes pour coder les chaînes Unicode en séquences d'octets.
Base64 est une méthode pour coder une séquence d'octets en une chaîne.
Ce sont donc des concepts très différents et ne doivent pas être confondus.
À retenir:
Toutes les séquences d'octets ne représentent pas une chaîne Unicode codée en UTF-8 ou UTF-16.
Toutes les chaînes Unicode ne représentent pas une séquence d'octets codée en Base64.
Base64 est un moyen de coder les données binaires, tandis que UTF8 et UTF16 sont des moyens de coder le texte Unicode. Notez que dans un langage comme Python 2.x, où les données binaires et les chaînes sont mélangées, vous pouvez coder les chaînes en base64 ou utf8 de la même manière:
u'abc'.encode('utf16')
u'abc'.encode('base64')
Mais dans les langues où il y a une séparation plus bien définie entre les deux types de données, les deux façons de représenter les données ont généralement des utilitaires assez différents, pour garder les préoccupations séparées.
UTF-8 est comme les autres encodages UTF un encodage de caractères pour encoder les caractères du jeu de caractères Unicode UCS .
Base64 est un encodage pour représenter toute séquence d'octets par une séquence de caractères imprimables (c'est-à-dire A
– Z
, a
– z
, 0
– 9
, +
, et /
).
Il n'y a pas System.Text.Encoding.Base64 car Base64 n'est pas un text encoding
mais plutôt une conversion de base comme le hexadécimal qui utilise 0
– 9
et A
– F
(ou a
– f
) pour représenter les nombres.
En termes simples, un caractère entrant, comme UTF8 ou UTF16, est utile pour faire correspondre les nombres, c'est-à-dire les octets aux caractères et vice versa, par exemple en ASCII 65 correspond à "A", tandis qu'une base Le codage est principalement utilisé pour convertir les octets en octets afin que les octets résultants convertis à partir d'un seul octet soient imprimables et constituent un sous-ensemble du codage de caractère ASCII), pour cette raison, vous pouvez également voir Base64 comme un octets au mécanisme de codage de texte. La principale raison d'utiliser Base64 est de transmettre des données sur un canal qui ne permet pas le transfert de données binaires. Cela dit, il devrait maintenant être clair que vous pouvez avoir un flux codé en Base64 qui représente un flux Codé UTF8.