Oracle Unicode problème lors de l'utilisation de NLS_CHARACTERSET est WE8ISO8859P1 et NLS_NCHAR_CHARACTERSET est al16utf16, respectivement, et ColdFusion comme langage de programmation

J'ai 2 base de données Oracle 10g, XE et de l'Entreprise

XE

Oracle Unicode problème lors de l'utilisation de NLS_CHARACTERSET est WE8ISO8859P1 et NLS_NCHAR_CHARACTERSET est al16utf16, respectivement, et ColdFusion comme langage de programmation

Oracle Unicode problème lors de l'utilisation de NLS_CHARACTERSET est WE8ISO8859P1 et NLS_NCHAR_CHARACTERSET est al16utf16, respectivement, et ColdFusion comme langage de programmation

Entreprise

Oracle Unicode problème lors de l'utilisation de NLS_CHARACTERSET est WE8ISO8859P1 et NLS_NCHAR_CHARACTERSET est al16utf16, respectivement, et ColdFusion comme langage de programmation

Oracle Unicode problème lors de l'utilisation de NLS_CHARACTERSET est WE8ISO8859P1 et NLS_NCHAR_CHARACTERSET est al16utf16, respectivement, et ColdFusion comme langage de programmation

et ce sont le type de données que j'ai utiliser dans la table de test

Oracle Unicode problème lors de l'utilisation de NLS_CHARACTERSET est WE8ISO8859P1 et NLS_NCHAR_CHARACTERSET est al16utf16, respectivement, et ColdFusion comme langage de programmation

Oracle Unicode problème lors de l'utilisation de NLS_CHARACTERSET est WE8ISO8859P1 et NLS_NCHAR_CHARACTERSET est al16utf16, respectivement, et ColdFusion comme langage de programmation

et puis j'ai essayé de tester d'insérer quelques Unicode char de http://www.sustainablegis.com/unicode/

et les résultats sont

XE

Oracle Unicode problème lors de l'utilisation de NLS_CHARACTERSET est WE8ISO8859P1 et NLS_NCHAR_CHARACTERSET est al16utf16, respectivement, et ColdFusion comme langage de programmation

Entreprise

Oracle Unicode problème lors de l'utilisation de NLS_CHARACTERSET est WE8ISO8859P1 et NLS_NCHAR_CHARACTERSET est al16utf16, respectivement, et ColdFusion comme langage de programmation

pour ce test, j'utilise ColdFusion 9 developer edition

<cfprocessingDirective pageencoding="utf-8"> 
<cfset setEncoding("form","utf-8")>
<form action="" method="post">
Unicode : <br>
<textarea name="txaUnicode" id="txaUnicode" cols="50" rows="10"></textarea>
<br><br>
Language : <br>
<input type="Text" name="txtLanguage" id="txtLanguage">
<br><br>
<input type="Submit">
</form>
<cfset dsn = "theDSN">
<cfif StructKeyExists(FORM, "FIELDNAMES")>
<cfquery name="qryInsert" datasource="#dsn#">
INSERT INTO UNICODE
(
C_VARCHAR2,
C_CHAR,
C_CLOB,
C_NVARCHAR2,
LANGUAGE
)
VALUES
(
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#FORM.TXAUNICODE#">,
<cfqueryparam cfsqltype="CF_SQL_CHAR" value="#FORM.TXAUNICODE#">,
<cfqueryparam cfsqltype="CF_SQL_LONGVARCHAR" value="#FORM.TXAUNICODE#">,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#FORM.TXAUNICODE#">,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#FORM.TXTLANGUAGE#">
)
</cfquery>
</cfif>
<cfquery name="qryUnicode" datasource="#dsn#">
SELECT  *
FROM    UNICODE
ORDER BY    LANGUAGE
</cfquery>
<table border="1">
<thead>
<tr>
<th>LANGUAGE</th>
<th>C_VARCHAR2</th>
<th>C_CHAR</th>
<th>C_CLOB</th>
<th>C_NVARCHAR2</th>
</tr>
</thead>
<tbody>
<cfoutput query="qryUnicode">
<tr>
<td>#qryUnicode.LANGUAGE#</td>
<td>#qryUnicode.C_VARCHAR2#</td>
<td>#qryUnicode.C_CHAR#</td>
<td>#qryUnicode.C_CLOB#</td>
<td>#qryUnicode.C_NVARCHAR2#</td>
</tr>
</cfoutput>
</tbody>
</table>

de ce guide http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10749/ch6unicode.htm#i1007297 je pense que pour mon Entreprise de base de données, il doit produire la même chose que XE (au moins pour NVARCHAR2 colonne) depuis le solution typique à partir de ce guide a dit:

  • Utilisation NCHAR et NVARCHAR2 types de données pour stocker des caractères Unicode
  • Garder WE8ISO8859P1 que la base de données du jeu de caractères
  • Utilisation al16utf16, respectivement que le jeu de caractères nationaux

Alors, comment cela fonctionne aussi dans ma base de données d'Entreprise?

Merci
🙂

OriginalL'auteur tsurahman | 2011-02-23