2 Replies Latest reply: Jul 9, 2013 8:31 PM by rp0428 RSS

    An application I am installing specifies that it MUST have UTF8

    972657

      Here is the note from the document I am following:

       

      Ensure that the NLS/charset setting is set to "UT F8"' when using an external database, not 'AL32UT F8' or other charsets. Using other charsets may lead to problems later.

       

      I thought that AL32UTF8 was a sub-set of UTF8 and therefore having this would not be a problem.

       

      When I execute:

       

      SELECT value$ FROM sys.props$ WHERE name = 'NLS_CHARACTERSET' ;

      VALUE$

      --------------------------------------------------------------------------------

      AL32UTF8

       

      I have tried recreating the database (CREATE CONTROLFILE SET DATABASE.......)

      and ensuring the character set is UTF8 (CHARACTER SET UTF8)

       

      And still when I open the database I get

       

      SELECT value$ FROM sys.props$ WHERE name = 'NLS_CHARACTERSET' ;

      VALUE$

      --------------------------------------------------------------------------------

      AL32UTF8

       

      What on earth am I doing wrong?

        • 1. Re: An application I am installing specifies that it MUST have UTF8
          rp0428

          >

          What on earth am I doing wrong?

          >

          Not contacting the vendor of whatever application you are talking about?

           

          Are you sure that note doesn't refer to the CLIENT character set that should be used? I doubt if it refers to the database character set.

           

          Here is a link that explains the difference between the two sets:

          http://decipherinfosys.wordpress.com/2007/01/28/difference-between-utf8-and-al32utf8-character-sets-in-oracle/

           

          And see the Database Globalization Support Guide for a diagram that shows CLIENTS using different character sets but the SERVER using the recommended one.

          http://docs.oracle.com/cd/B28359_01/server.111/b28298/ch2charset.htm#i1007338

          >

          Figure 2-8 shows a server that uses the AL32UTF8 Oracle Database character set that is based on the Unicode UTF-8 character set.

          Figure 2-8 Unrestricted Multilingual Support Scenario in a Client/Server Configuration

           

          There are four clients:

          •   A French client that uses the WE8ISO8859P1 Oracle Database character set
          •   A German client that uses the WE8DEC character set
          •   A Japanese client that uses the JA16EUC character set
          •   A Japanese client that used the JA16SJIS character set

          Character conversion takes place between each client and the server, but there is no data loss because AL32UTF8 is a universal character set. If the German client tries to retrieve data from one of the Japanese clients, then all of the Japanese characters in the data are lost during the character set conversion.

          >

          • 2. Re: An application I am installing specifies that it MUST have UTF8
            Hemant K Chitale

            >I have tried recreating the database (CREATE CONTROLFILE SET DATABASE.......) and ensuring the character set is UTF8 (CHARACTER SET UTF8)

             

            Doesn't change the characterset.  You need to actually DROP the database and CREATE DATABASE (not create controlfile).  This is best done through DBCA and specifying UTF8 (instead of Oracle's recommended AL32UTF8) as the database character set.

             

            Oracle recommends AL32UTF8.  It complies with a higher version of the Unicode specifications  (this should be explained somewhere in the Globalization documentation).  Oracle's UTF8 is a lower version.  Ask the vendor why they can't work with AL32UTF8.

             

            Hemant K Chitale