SAS et UTF-8 – L’option DBCLIENT_MAX_BYTES
Lorsque vous travaillez dans une session SAS UTF-8 et que vous récupérez des données depuis une base de données distante elle-même en UTF-8, vous avez sans doute constaté que l’espace alloué pour stocker les données de type varchar est plus important que la taille du champ varchar source. Ce qui n'est pas le cas, si votre session est, par exemple, en LATIN.
Ce comportement est en rapport avec le codage des données UTF-8.
Le codage des données consiste en un jeu de caractères, c’est-à-dire la liste des caractères susceptibles d'être représentés par le codage. Il peut être :
- Simple (Single Byte Character Set – SBCS ). Le SBCS prend en charge un maximum de 256 symboles. Il est utilisé par les langues ne comportant pas beaucoup de symboles ou de lettres accentuées, tels que les latin, grec ou cyrillique.
- Double (Double Byte Character Set – DBCS ). Le DBCS est utilisé pour stocker du texte dans une langue asiatique utilisant des idéogrammes. Par exemple, le codage de caractères Shift-JIS pour la langue japonaise utilise de Double Byte Character Set.
- Multiple (Multi Byte Character Set – MBCS ou appelé aussi Variable-width encoding)