CODE_POINTS_TO_BYTES |
Code de points d'octets |
| BigQuery |
Syntaxe
|
CODE_POINTS_TO_BYTES(ascii_values)
|
Paramètres
| Nom |
Description |
| ascii_values |
Ce paramètre permet de spécifier un tableau d'entiers (ARRAY<INT64>), où chaque entier représente un point de code ASCII étendu (de 0 à 255). La fonction convertira ces points de code en une séquence d'octets. |
Description
Cette fonction permet de convertir un tableau de points de code ASCII étendue en un type de données BYTES.
Remarques
- Conversion précise de codes ASCII en octets : La fonction CODE_POINTS_TO_BYTES permet de transformer un tableau d'entiers représentant des valeurs
ASCII étendues (0 à 255) en une séquence binaire (BYTES). Cela permet de générer manuellement des données binaires à partir de représentations numériques.
- Utilisation strictement limitée à l'intervalle 0 à 255 : Chaque élément du tableau ascii_values doit être un entier compris entre 0 et 255, ce qui
correspond à la plage d'un octet unique. Une valeur hors de cet intervalle déclenchera une erreur, car elle ne peut pas être représentée comme un seul octet.
- Particulièrement utile pour manipuler des données binaires : Cette fonction est idéale pour générer ou manipuler des données binaires personnalisées,
par exemple pour l'encodage de messages, le traitement de fichiers binaires, ou la simulation d'un flux réseau dans un format brut.
- N'interprète pas les points de code Unicode : Contrairement à des fonctions comme CODE_POINTS_TO_STRING, CODE_POINTS_TO_BYTES n'interprète pas les
entiers comme des points de code Unicode, mais plutôt comme des valeurs d'octets. Cela signifie qu'elle produit un résultat non textuel.
- Peut servir à reconstruire un objet BYTES connu : Si vous disposez d'une séquence d'octets convertie avec TO_CODE_POINTS, vous pouvez reconstituer les
données originales en inversant l'opération avec CODE_POINTS_TO_BYTES, ce qui permet de coder/décoder les valeurs efficacement.
- Les éléments sont concaténés sans séparateur : Les octets générés à partir du tableau sont concaténés directement, sans espace, ni délimiteur. Ainsi,
[65, 66, 67] produira un champ de type BYTES équivalent à la chaîne ASCII "ABC", encodée sous forme binaire.
- Requiert un tableau en entrée, même pour un seul octet : La fonction nécessite un tableau (ARRAY<INT64>), même si vous ne souhaitez convertir
qu'un seul code. Par exemple, pour générer un seul octet 0x7F, vous devez écrire CODE_POINTS_TO_BYTES([127]), pas CODE_POINTS_TO_BYTES(127).
- Complément inverse de TO_CODE_POINTS appliqué à BYTES : Cette fonction est souvent utilisée en tandem avec des fonctions comme TO_CODE_POINTS,
FROM_BYTES, ou BYTE_LENGTH pour faire des allers-retours entre représentations numériques et binaires, ce qui est utile dans les traitements bas niveau.
Dernière mise à jour : Jeudi, le 18 Juin 2020