N L S : Nationnal Language Support gestion des paramètres liés à la notion de langue et de pays et gestion de sites multilangues. L'AS/400 sait s'adapter à la notion de pays et de langue, vous connaisser certainement déja des paramètres propres à un pays : QDECFMT format décimal J = virgule QDATFMT format de la date DMY QDATSEP séparateur de la date / QTIMSEP séparateur de l'heure : QKBDTYP type de clavier/dft FAB français azerty (FAI " " multinationa l FQB français qwerty FQI " " multinationa l) |
Viennent s'ajouter à ces paramètres + la notion de jeu de caractères + la codification de ces caractères quelques définition : - système de codage EBCDIC ou ASCII SBCS (single byte character set) = 1 octet pour un charactère DBCS (double byte " " ) = 2 octets pour un caractère alphabet asiatique (chinois,etc...) la valeur système QIGC signale si votre système admet le codage DBCS " " " QIGCCDEFNT indique la police de caractère à utiliser. - jeu de caractères ensemble des caractères propres à un langage reconnus par les terminaux(claviers,imprimantes,..) de ce pays. |
pour le codage SBCS il existe une partie invariante qui est : les caractères entre A-Z " " a-z " " 0-9 et 19 symboles + < = > % & * " ' ( ) , _ - . / : ; ? c'est le jeu de carctères 640. puis le jeu de caractères LATIN 1 comprenant en plus tous les caractères accentués (non connus par les anglo-saxons) à è é ê ë Ä Ï etc ... et quelques symboles supplémentaires : { } @ # µ | [ ] etc ... (ces symboles ne sont pas reconnus par tous les terminaux) c'est le jeu de caractères 697 (celui utilisé en france) les jeux 1252 et 1253 comprennent des caractères supplémentaires (alphabet hébreu,cyrillique,...) |
- point de code c'est la valeur héxa attribuée à un caractère - page de code c'est le croisement jeu de caractères/point de code. autrement dit : c'est l'ensemble des valeurs héxa attribuées dans un pays à un jeu de caractère donné. exemple: en angleterre x'5B' = £ au U.S.A x'5B' = $ (en france aussi) au japon x'5B' = ¥ le code page U.S est le 037 le code page multinationa l est le 256 le code page français est le 297 voici le détail de ce code page : |
! 4 ! 5 ! 6 ! 7 ! 8 ! 9 ! A ! B ! C ! D ! E ! F ! 0 ! (sp)! { ! - ! ø ! Ø ! [ ! ` ! ¢ ! é ! è ! ç ! 0 ! 1 ! # ! ê ! / ! É ! a ! j ! ¨ ! # ! A ! J ! ÷ ! 1 ! 2 ! â ! ë ! Â ! Ê ! b ! k ! s ! ¥ ! B ! K ! S ! 2 ! 3 ! ä ! } ! Ä ! Ë ! c ! l ! t ! · ! C ! L ! T ! 3 ! 4 ! @ ! í ! À ! È ! d ! m ! u ! © ! D ! M ! U ! 4 ! 5 ! á ! î ! Á ! Í ! e ! n ! v ! ] ! E ! N ! V ! 5 ! 6 ! ã ! ï ! Ã ! Î ! f ! o ! w ! ¶ ! F ! O ! W ! 6 ! 7 ! å ! ì ! Å ! Ï ! g ! p ! x ! ¼ ! G ! P ! X ! 7 ! 8 ! \ ! ì ! Ç ! Ì ! h ! q ! y ! ½ ! H ! Q ! Y ! 8 ! 9 ! ñ ! ß ! Ñ ! µ ! i ! r ! z ! ¾ ! I ! R ! Z ! 9 ! A ! ° ! § ! ù ! : ! « ! ª ! ¡ ! ¬ ! ! ¹ ! ² ! ³ ! B ! . ! $ ! , ! £ ! » ! º ! ¿ ! | ! ô ! û ! Ô ! Û ! C ! < ! * ! % ! à ! ð ! æ ! Ð ! ¯ ! ö ! ü ! Ö ! Ü ! D ! ( ! ) ! _ ! ' ! ý ! ¸ ! Ý ! ~ ! ò ! ¦ ! Ò ! Ù ! E ! + ! ; ! > ! = ! þ ! Æ ! Þ ! ´ ! ó ! ú ! Ó ! Ú ! F ! ! ! ^ ! ? ! " ! ± ! ¤ ! ® ! × ! õ ! ÿ ! Õ ! ! une colonne représente la partie gauche d'un octet (hors texte) une ligne la partie droite (digit) ; ainsi 80 = Ø , B6 = ¶ , etc ... l'affichage de cette page de code dépend de votre écran et de votre CHRID. |
- CHRID (notion venant du 38) c'est le stockage de votre jeu de caractère (5 premiers chiffres) et de votre code page (5 suivants) destiné à une conversion DES CONSTANTES à destination des périhériques. Si CHRID du fichier unité(DSPF) <> CHRID de l'unité(*DEV), il y a alors une conversion effectuée par le système en utilisant une (ou des) table(s) de conversion Qssscccppp dans QUSRSYS. où sss est le code page source ccc le jeu de caractère cible ppp la page de code cible par exemple : Q297337256 est la table permettant de faire une conversion français (297) vers multinationa l (337 256). le CHRID par défaut est donné dans la valeur système QCHRID 697 297 en France |
- CCSID (notion de la V2R11) représentation interne (codée) du CHRID destiné à une conversion DES DONNEES lors de leur manipulation. Utilisé dans le cadre de CDRA(Character Data Représentation Architecture) en association avec DRDA (bases de données distribuées) Chaque donnée manipulée est "taggée" avec un code représentant les particularités liées au langage : - système de codage (SBCS,DBCS) - jeu de caractère - page de code - infos sup. Ce "tag" est construit à partir du CCSID qui en SBCS avec un jeu de caractère standard ne peut contenir QUE : - le code page du CHRID 297 en france ou - la valeur 65535 (pas de conversion) (toutes les valeurs comprises entre 00001 et 28761 sont copyright IBM) |
Sur AS cette valeur est donnée par défaut par la valeur système QCCSID puis associée à un profil (dft = *SYSVAL) ce qui donne la valeur pour le job (modifiable via CHGJOB) Puis chaque fichier (PF) se voit associé un CCSID (mot-clé SDD CCSID) - par défaut celui du job et ENFIN quand des données sont manipulées (DRDA, DDM, E/S pgm, ...) si le CCSID du job est différent du CCSID du fichier et s'ils sont tous les deux différents de 65535, il y a conversion des données de type charactère: ( type "A" dans la langage SDD. ) + vers le CCSID du JOB en cas de lecture. + vers le CCSID du fichier en cas d'écriture. - cela ne concerne pas les variables numériques bien sur les variables de type "H" (héxa,non soumises à la notion de langue) les fichiers sans description (interne) |
cette fonctionnalité est reconnue par : - le gestionnaire de base de donnée OS/400 (toutes opérations) - les commandes de copie (CPYF, CPYFRMQRYF) - DRDA (SQL, QM, DDM) - OPNQRYF (CCSID accepté dans MAPFLD) (conversion lors de la requête) - SNADS TOUT SYSTEME OS/400 antérieur à la V2R11 est considéré CCSID 65535. La valeur par défaut de QCCSID est 65535 Le CCSID des fichiers créés avant la V2R11 est 65535. (modifiable par CHGPF) |
DEPUIS LA V2R30 les fichiers unité :DSPF,PRTF,*PNLGRP(aides et menus) acceptent la valeur suivante: - CHRID(*JOBCCSID) * fichiers écrans : CHRID(*JOBCCSID) variables en entrée converties : CCSID/DEVD -> CCSID/JOB variables en sortie converties : CCSID/JOB -> CCSID/DEVD constantes converties : CCSID/DSPF -> CHRID/DEVD messages d'erreur non convertis textes de fichiers message : CCSID/JOB -> CCSID/DEVD (autres que message d'erreur) * fichiers écrans : CHRID(xxx yyy) CHRID/DSPF -> CHRID/DEVD (zones avec le mot-clé CHRID) * fichiers écrans : CHRID(*DEVD) pas de conversion |
* fichiers prtf : CHRID(*JOBCCSID) constantes converties : CCSID/PRTF -> CCSID/JOB les variables sont supposées être au CCSID du JOB (CHRID géré par l'unité) * fichiers prtf : CHRID(xxx yyy) les variables sont supposées être au CCSID du JOB ( "" " " " ) * fichiers prtf : CHRID(*DEVD) pas de conversion * pannel groupe : CHRID(*JOBCCSID) et menus UIM le texte est converti CCSID/PNLGRP -> CHRID/DEVD AUTRE NOUVEAUTE V2R30 : les tables de séquence permettent d'avoir des tris et des tests logiques (compraraisons) fonction du langage (voir le cours "Séquences de tri") |