Supporto di un insieme di caratteri locali misti o di un database UTF-8 in più lingue

Questo argomento fornisce linee guida per supportare la distribuzione di un insieme di caratteri locali misti o di un database in più lingue UFT-8 (Unicode Transformation Format, 8 bit).
Se si lavora in un ambiente in cui computer differenti con diversi insiemi di caratteri locali si collegano alla stessa serie di database Rational ClearQuest, oppure è stata scelta la codepage dei dati UTF-8 di ClearQuest (65001) per la serie di database, è necessario considerare le seguenti problematiche relative alla rappresentazione dei caratteri:

Configurazione dell'insieme di caratteri locali

L'insieme di caratteri locali è il gruppo di caratteri che può essere immesso o visualizzato nella shell della riga comandi del sistema operativo client. Sul sistema UNIX, l'insieme di caratteri locali è controllato dalla variabile di ambiente LANG. In Windows, è controllato dalle impostazioni in Opzioni di lingua e di regione.

Nelle versioni di Rational ClearQuest precedenti alla 7.0, le operazioni di scrittura non sono consentite a meno che l'insieme di caratteri locali non corrisponda alla codepage dei dati ClearQuest. Se le impostazioni non corrispondono, sono consentite solo le operazioni di sola lettura. La modalità di sola lettura era necessaria poiché le applicazioni ClearQuest utilizzavano l'insieme di caratteri locali del client o del server Web per scrivere i dati sul database, invece della codepage dei dati ClearQuest per la serie di database.

A partire dalla versione 7.0, il software Rational ClearQuest elabora i dati in Unicode e le applicazioni utilizzano la codepage dei dati ClearQuest per scrivere sui database. Queste applicazioni possono collegarsi al database ClearQuest in modalità di lettura/scrittura anche quando l'insieme di caratteri locali non corrisponde alla codepage dei dati ClearQuest.

Selezione e impostazione della codepage dati ClearQuest della serie di database

L'insieme dei caratteri del database del fornitore per Oracle è definito come insieme di caratteri o charset; per IBM DB2 come codepage o codeset e per SQL Server come codepage o raccolta.

Selezione e impostazione dell'insieme di caratteri del database del fornitore dei database

A partire da Rational ClearQuest versione 7.1.1, è possibile selezionare una codepage di dati UTF-8 di ClearQuest per serie di database Oracle e DB2. Una codepage di dati UTF-8 consente la memorizzazione di caratteri in più lingue nel database utente. Quando si seleziona UTF-8 come codepage di dati, si sta utilizzando una distribuzione mista dell'insieme di caratteri locali a meno che anche la codepage locale del sistema operativo non sia UTF-8. Quest'ultima non è un'opzione sui sistemi Windows.

Codifica di hook e di script per gestire i caratteri nella codepage di dati ClearQuest che potrebbe non essere inclusa nella serie di caratteri locali

Script e hook scritti per una distribuzione di serie di caratteri locali misti o un ambiente database multilingua UTF-8 devono gestire i dati carattere ClearQuest che potrebbero non essere inclusi nella serie di caratteri locale. Per poter utilizzare questa funzionalità in tali ambienti è necessario che questi script ed hook siano codificati per supportare Unicode.

Designer include una nuova impostazione: Unicode Aware. Gli hook scritti per la versione 7.0 possono specificare se i caratteri di stringa restituiti dai richiami API di ClearQuest devono trovarsi solo nell'insieme di caratteri locali (RETURN_STRING_LOCAL) o possono essere caratteri Unicode (RETURN_STRING_UNICODE). Inoltre, le nuove funzioni API sono disponibili per controllare la modalità della stringa di restituzione. In modalità RETURN_STRING_LOCAL, un richiamo API restituisce un'eccezione se la stringa di restituzione include caratteri che non possono essere rappresentati nell'insieme di caratteri locali. In RETURN_STRING_UNICODE, un richiamo API restituisce tutti i caratteri senza errori.

Per verificare che gli hook e gli script gestiscano tutti i dati in una distribuzione UTF-8 o dell'insieme di caratteri locali misti, è necessario impostare la modalità su RETURN_STRING_UNICODE e gestire correttamente i caratteri Unicode che potrebbero essere restituiti. Non è sufficiente impostare la modalità di stringa di restituzione su RETURN_STRING_UNICODE; è necessario verificare che il codice possa gestire i caratteri Unicode in modo corretto. Le istruzioni elencate di seguito sono utili ed è necessario utilizzare le tecniche di programmazione Unicode appropriate per il linguaggio di script.

Se si sta eseguendo l'aggiornamento alla versione 7.0, queste modifiche non influiscono su uno schema esistente se tutti gli insiemi di caratteri locali nell'ambiente corrispondono alla codepage dei dati ClearQuest, come avveniva solitamente nelle versioni precedenti. La modalità predefinita è RETURN_STRING_LOCAL, che consente agli hook e agli script di continuare a funzionare.

Se viene distribuita la versione 7.0 in un ambiente in cui gli insiemi di caratteri locali non corrispondono alla codepage dei dati di ClearQuest, è necessario verificare che gli script possano elaborare i dati di carattere Unicode per il software ClearQuest, impostare la modalità di restituzione per gli script su RETURN_STRING_UNICODE ed aggiornare i package alla versione 7.0. Per un elenco dei package ClearQuest che supportano Unicode, consultare Tabella 1. Gli script che non gestiscono Unicode possono essere eseguiti, ma viene restituito un errore se il sistema tenta di restituire allo script dei dati di carattere che non sono inclusi nell'insieme di caratteri locali. Questi script continuano ad operare fino a quando i dati elaborati sono limitati all'insieme di caratteri locali del client o del server Web.

Tabella 1. Modalità della stringa di restituzione del package
Package Modalità stringa di restituzione
AMWorkActivitySchedule RETURN_STRING_UNICODE
ATStateTypes RETURN_STRING_UNICODE
Attachments RETURN_STRING_UNICODE
AuditTrail RETURN_STRING_UNICODE
BTStateTypes RETURN_STRING_UNICODE
BuildTracking RETURN_STRING_UNICODE
CQTM RETURN_STRING_UNICODE
Customer RETURN_STRING_UNICODE
DeploymentTracking RETURN_STRING_UNICODE
DTStateTypes RETURN_STRING_UNICODE
EMail RETURN_STRING_UNICODE
EnhancementRequest RETURN_STRING_UNICODE
eSignature RETURN_STRING_UNICODE
History RETURN_STRING_UNICODE
Notes RETURN_STRING_UNICODE
Project RETURN_STRING_UNICODE
Resolution RETURN_STRING_UNICODE
TPM RETURN_STRING_UNICODE
Durante lo sviluppo di un'applicazione che deve gestire distribuzioni di insiemi di caratteri misti è necessario fare alcune considerazioni.
  • Modalità stringa di restituzione

    Il software ClearQuest gestisce tutti i dati come caratteri Unicode. Tuttavia, gli hook di schema (Perl e Visual Basic) e le altre applicazioni API di ClearQuest o integrazioni non possono essere codificate per elaborare i caratteri Unicode. Nella versione 7.0, una modalità della stringa di restituzione è disponibile per gestire questo problema. Il codice hook può essere impostato su Unicode Aware nell'editor di script Designer per indicare che lo script viene seguito in una modalità della stringa di restituzione RETURN_STRING_UNICODE. Per eseguire tale operazione, selezionare la casella di spunta Unicode Aware. Gli script possono richiamare il metodo SetPerlReturnStringMode o SetBasicReturnStringMode per impostare la modalità della stringa di restituzione su RETURN_STRING_UNICODE.

    La modalità della stringa di restituzione limita (RETURN_STRING_LOCAL) o consente l'intera rappresentazione di caratteri (RETURN_STRING_UNICODE) quando le stringhe sono restituite dall'API di ClearQuest per Perl o COM.

  • Supporto Unicode nel codice di script o nell'hook esistente

    È preferibile scrivere gli hook e gli script che possono elaborare i caratteri Unicode. RETURN_STRING_LOCAL viene fornito come modalità della stringa di restituzione predefinita in modo tale che gli hook e gli script esistenti per le versioni precedenti del software ClearQuest possano essere eseguiti senza modifiche. Nel tempo, è opportuno modificare gli hook e gli script esistenti da utilizzare in modalità RETURN_STRING_UNICODE, anche se attualmente non è necessario Unicode.

    Verificare che il codice hook o script possa elaborare qualsiasi carattere Unicode. Quindi contrassegnare il codice hook come Unicode Aware nell'editor di script Designer o è necessario che lo script esterno richiami il metodo SetPerlReturnStringMode o SetBasicReturnStringMode. L'hook o lo script può essere utilizzato in qualsiasi ambiente ClearQuest. Ad esempio:
    1. Uno script dell'API di ClearQuest in Perl viene eseguito su un sistema dell'insieme di caratteri locali Windows Latin 1 (1252) che viene collegato ad un database ClearQuest la cui codepage dei dati è impostata su Shift-JIS (932).
    2. Lo script richiama un valore del campo che contiene il testo giapponese. Per impostazione predefinita, il valore viene restituito nell'insieme di caratteri locali del computer che esegue lo script Perl (in questo esempio, 1252). Poiché i caratteri in lingua giapponese Shift-JIS (932) non possono essere rappresentati come caratteri nella codepage Latin 1, viene creata un'eccezione. Per elaborare questo carattere, l'applicazione deve gestire i caratteri Unicode e impostare la modalità della stringa di restituzione su RETURN_STRING_UNICODE; l'eccezione non viene creata e lo script richiama tutti i caratteri nel valore del campo come caratteri Unicode.

    Per impostazione predefinita, un'eccezione viene rilevata nel passo 2 quando lo script API ClearQuest viene restituito con una stringa che include i caratteri all'esterno dell'insieme di caratteri locali. L'eccezione evita la corruzione dei dati. Una volta verificato e confermato che il codice può elaborare caratteri Unicode, è possibile impostare la modalità della stringa di restituzione RETURN_STRING_UNICODE utilizzando l'API di ClearQuest o nell'editor di script di Designer. Apportando questa modifica, nella fase 2 l'API di ClearQuest per Perl restituisce la stringa del valore del campo come UTF8 (UNICODE) se la stringa contiene dati dell'insieme di caratteri non locali e l'API di ClearQuest per VBScript, Visual Basic o COM restituisce caratteri Unicode illimitati. I caratteri che non possono essere rappresentati nell'insieme di caratteri locali possono essere restituiti all'hook o allo script per l'elaborazione come caratteri Unicode.

    Gli hook e gli script devono utilizzare RETURN_STRING_LOCAL se effettuano un'operazione nel linguaggio di script (Perl, VBScript, Visual Basic o COM) che non supporta l'elaborazione dei caratteri che non possono essere rappresentati nell'insieme di caratteri locali. Ad esempio:
    • L'utilizzo dei dati di ClearQuest in un richiamo Perl che non gestisce le stringhe UTF8 Perl (ad esempio, alcuni richiami del sistema)
    • L'utilizzo dei dati di ClearQuest come un nome file o di directory (i nomi file e di directory devono trovarsi nell'insieme di caratteri locali)
    • La scrittura dei dati di ClearQuest in un file senza configurare il file di output per supportare i caratteri Unicode
    • L'invio di dati di ClearQuest ad un'integrazione che accetta solo i dati dell'insieme di caratteri locali

    Nella modalità RETURN_STRING_LOCAL, le operazioni quali l'esecuzione di query possono essere eseguite e la serie dei risultati della query può includere i caratteri Unicode. Un'eccezione viene creata solo se i dati sono estratti dalla serie di risultati da un metodo dell'API di Rational ClearQuest e i caratteri restituiti dal richiamo API non si trovano nell'insieme di caratteri locali. Ad esempio, un'integrazione o un'applicazione esterna può operare su una richiesta di modifica se i dati trasferiti all'integrazione contengono solo i caratteri dell'insieme di caratteri locali. Il codice di integrazione deve gestire l'eccezione rilevata da un metodo dell'API di Rational ClearQuest quando i caratteri restituiti non si trovano nell'insieme di caratteri locali. Se un'API di integrazione viene configurata come RETURN_STRING_UNICODE, l'eccezione non viene rilevata e l'applicazione deve gestire correttamente qualsiasi carattere Unicode restituito. In entrambe le modalità RETURN_STRING_LOCAL e RETURN_STRING_UNICODE, le eccezioni sono restituite all'integrazione di richiamo o all'applicazione se l'applicazione scrive i caratteri che non possono essere rappresentati nella codepage dei dati ClearQuest.

    Per ulteriori informazioni, consultare Impostazione della modalità della stringa di ritorno per gli hook e gli script nella guida Riferimento API IBM Rational ClearQuest.

  • Supporto Unicode nei package e negli schemi

    Alcuni package o schemi non sono stati progettati per gestire i dati dell'insieme di caratteri non locali e Unicode. Il supporto che ogni script di ciascun package offre è indicato nell'editor di script di Designer (la casella di spunta Unicode Aware è selezionata). Gli schemi DefectTracking e Common supportano Unicode. Tuttavia, qualsiasi schema che include un package che non supporta i caratteri Unicode non può essere utilizzato in una distribuzione dell'insieme di caratteri misti. Consultare Tabella 1.

    È possibile modificare o aggiungere gli hook che accedono ai campi del package e questi hook sono considerati parte del package. Questi hook ereditano il supporto Unicode predefinito dal package, ma Designer non visualizza questa impostazione corretta per l'hook.

Se gli insiemi di caratteri locali di tutti i client connessi ad una serie di database o ad un gruppo corrispondono alla codepage dei dati, non è necessario considerare queste problematiche. Per ulteriori informazioni sulle rappresentazioni dei caratteri e sulle impostazioni di codepage, consultare la guida online per la Gestione di Rational ClearQuest.


Feedback