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

Questo argomento fornisce linee guida per supportare la distribuzione di una serie 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 diverse serie 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 della serie di caratteri locali

La serie 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, la serie di caratteri locali è controllata dalla variabile di ambiente LANG. Su Windows, viene controllata dalle impostazioni delle opzioni Lingua e Regionale.

Nelle versioni di Rational ClearQuest precedenti alla 7.0, le operazioni di scrittura non sono consentite a meno che la serie 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 la serie 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 la serie di caratteri locali non corrisponde alla codepage dei dati ClearQuest.

Selezione e impostazione della codepage dati ClearQuest della serie di database

La serie di caratteri del database del fornitore per Oracle è definita come serie di caratteri o charset; per IBM® DB2 come codepage o codeset e per SQL Server come codepage o raccolta.

Selezione e impostazione della serie 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 della serie di caratteri locali misti 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 potrebbero non essere inclusi 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 nella serie 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 nella serie 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 della serie 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 tutte le serie 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 le serie 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 nella serie di caratteri locali. Questi script continuano ad operare fino a quando i dati elaborati sono limitati alla serie 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
BTStateTypes RETURN_STRING_UNICODE
Customer RETURN_STRING_UNICODE
EnhancementRequest RETURN_STRING_UNICODE
History RETURN_STRING_UNICODE
Notes RETURN_STRING_UNICODE
Project RETURN_STRING_UNICODE
Resolution RETURN_STRING_UNICODE
Durante lo sviluppo di un'applicazione che deve gestire distribuzioni di serie 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 API ClearQuest in Perl viene eseguito su un sistema con serie di caratteri locali Windows Latin 1 (1252) che si collega a 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 nella serie 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 della serie 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 della serie 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 nella serie 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 nella serie 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 nella serie 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 della serie 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 nella serie 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 della serie 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 nella serie 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 della serie 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 della serie 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 le serie 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 per la gestione di Rational ClearQuest.


Feedback