CCSID des compilateurs de langage
Certains compilateurs de langage s'attendent à ce que les opérateurs syntaxiques et la convention de dénomination du code source soient dans le CCSID 00037.
Vous pouvez consulter la documentation du compilateur de langage que vous utilisez.
Pour ces compilateurs, un mappage incorrect se produit si la source est compilée avec un CCSID autre que 00037 ou 65535. Vous devez vous assurer que ces compilateurs reçoivent tous les caractères de variante utilisés dans la syntaxe du langage dans le CCSID 00037.
Compilateurs de langage ILE
Lorsqu'un programme ILE C, ILE RPG ou ILE COBOL est compilé, la source des fichiers source de la base de données est convertie au CCSID du fichier source principal.
Les compilateurs de ces langages peuvent gérer les opérateurs syntaxiques dans la plupart des CCSID. Ces compilateurs peuvent également gérer les conventions de dénomination du code source dans la plupart des CCSID.
Compilateurs de langage non ILE
Lorsqu'un programme CL non ILE, RPG non ILE ou COBOL non ILE est compilé, la source des fichiers source de la base de données est convertie au CCSID du travail.
Si vous ne souhaitez pas convertir vos noms, constantes ou littéraux en CCSID du travail, vous pouvez remplacer le CCSID de votre travail par 65535. Vos constantes, littéraux et noms restent alors intacts.
Exemple 1
L'exemple suivant illustre un exemple de programme RPG non ILE. Cet exemple montre une source en anglais sur un système aux Etats-Unis.
* RPG Source (Source file created using CCSID 00037 but tagged
* with CCSID 65535)
FFILE1 IF E DISK 80
C READ FILE1
C* Test char
C*
C FLD1 IFEQ '$'
C ...
C* Move char
C*
C MOVE FLD1 FLD$
C ...
C*
C SETON LR
Exemple 2
En Finlande, le programme du premier exemple ne se compile pas car le nom de zone FLD$ contient un caractère de variante (le signe dollar). Le caractère variante représente un point de code différent dans une page de codes autre que 00037. Cette figure montre le même exemple de programme non ILE RPG que l'anglais (U.S.) sur un système en Finlande (CCSID 278).
* RPG Source (Source file created with CCSID 00037, but tagged
* with 65535)
FFILE1 IF E DISK 80
C READ FILE1
C* Test char
C*
C FLD1 IFEQ '
'
C ...
C* Move char
C*
C MOVE FLD1 FLD
C ...
C*
C SETON LR
Exemple 2
Vous pouvez corriger cette erreur en remplaçant le CCSID du fichier par 00037 et en définissant le CCSID du travail sur 00278 (pour la Finlande). L'exemple suivant montre le fichier modifié en tant que source en anglais en Finlande.
* RPG Source (Source file created using CCSID 00037 and tagged
* with CCSID 00037)
FFILE1 IF E DISK 80
C READ FILE1
C* Test char
C*
C FLD1 IFEQ '$'
C ...
C* Move char
C*
C MOVE FLD1 FLD$
C ...
C*
C SETON LR