SA0175 : Opération suspecte sur la chaîne
Note
N'activez pas toujours cette règle. Activez la règle uniquement lorsque cela est nécessaire pour trouver les emplacements dans le code qui doivent être vérifiés lors de la conversion au codage UTF-8.
Vérifie si l'option de projet Encodage UTF-8 pour STRING peut être activé. C'est le cas lorsqu'aucun emplacement de code avec des opérations suspectes n'est trouvé.
Lors du passage au codage UTF-8, les 127 premiers caractères correspondent au codage ASCII. Cependant, tous les autres caractères sont codés avec plus d'un octet. Cela peut entraîner un changement de comportement lors du traitement des chaînes. Par conséquent, un littéral de chaîne contenant des caractères non ASCII peut devenir plus long. Ou l'accès dans une chaîne par index peut accéder au mauvais élément. Enfin, même l'accès à un décalage d'octet non valide peut se produire.
Lorsque la règle est active, tous les emplacements de code contenant l'une des constructions suivantes sont signalés :
Indexer l'accès à une chaîne d'octets
Exemple:
str[2]
Message: SA0175 : Énumération avec l'attribut 'strict' : Opération suspecte sur la chaîne : accès à l'index '<expression>'
Accès d'adresse aux chaînes à un octet
Exemple:
ADR(str)
Message:
SA0175 : Énumération avec l'attribut 'strict' : Opération suspecte sur la chaîne : Accès possible à l'index '<expression>'
Appel des fonctions de chaîne de la
Standard
bibliothèque, sauf en appelant leCONCAT
etLEN
les fonctionsMessage:
SA0175 : Énumération avec l'attribut 'strict' : Opération suspecte sur la chaîne : Accès possible à l'index '<expression>'
Littéral d'octet contenant des caractères non ASCII
Exemples:
str := '99€'; str :='Ä';
Message:
SA0175 : Opération suspecte sur une chaîne : le littéral '<literal>' contient des caractères non-ASCII