Nous avons une base de données oracle qui contient des caractères chinois traditionnels et anglais, et l'environnement est :
PARAMETER VALUE
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET WE8PC850
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET UTF8
NLS_RDBMS_VERSION 9.2.0.4.0
Et j'exporte toutes les données de cette base vers un fichier *.sql en encodage "ansi", et lorsque je l'ouvre sur le même ordinateur, tous les caractères chinois sont corrompus.
Et quand je l'importe dans un autre oracle et que l'environnement est :
> NLS_LANGUAGE|AMERICAN
> NLS_TERRITORY|AMERICA NLS_CURRENCY|$
> NLS_ISO_CURRENCY|AMERICA
> NLS_NUMERIC_CHARACTERS|.,
> NLS_CHARACTERSET|WE8MSWIN1252
> NLS_CALENDAR|GREGORIAN
> NLS_DATE_FORMAT|DD-MON-RR
> NLS_DATE_LANGUAGE|AMERICAN
> NLS_SORT|BINARY
> NLS_TIME_FORMAT|HH.MI.SSXFF AM
> NLS_TIMESTAMP_FORMAT|DD-MON-RR
> HH.MI.SSXFF AM
> NLS_TIME_TZ_FORMAT|HH.MI.SSXFF AM TZR
> NLS_TIMESTAMP_TZ_FORMAT|DD-MON-RR
> HH.MI.SSXFF AM TZR NLS_DUAL_CURRENCY|$
> NLS_COMP|BINARY
> NLS_LENGTH_SEMANTICS|BYTE
> NLS_NCHAR_CONV_EXCP|FALSE
> NLS_NCHAR_CHARACTERSET|AL16UTF16
> NLS_RDBMS_VERSION|10.2.0.1.0
Tous les caractères chinois sont encore corrompus. Quelqu'un peut-il me donner des conseils ?
Et j'ai encore un autre problème, pourquoi parfois nous pouvons sauvegarder le "chinois traditionnel" ou le "chinois simplifié" dans un fichier texte avec un encodage "ANSI", et les caractères ne seront pas corrompus. Mais parfois, ils le seront... Pourquoi ? Quelqu'un peut-il expliquer toutes ces choses étranges ?
Merci d'avance !