Re: NLS_LANG

From: Álvaro G. Vicario <alvaroNOSPAMTHANKS_at_demogracia.com>
Date: Thu, 24 Jul 2008 14:10:37 +0200
Message-ID: <g69ren$4nn$1@huron.algomas.org>


Laurenz Albe escribió:
> If you really plan to use WE8ISO8859P1 on the Windows client, please write
> your application so that it makes dead sure that only LATIN-1 characters
> are entered into the database.
>
> Oracle has a special "feature" in that it will not check your input for
> validity if client and server character sets are the same.
> This means that your client application can enter arbitrary junk into the
> database that will be happily stored as is.

Oh my! That's scary...

> But even if you plan to use a different character set on the Windows client
> (which I personally would do, namely WE8MSWIN1252), you will not get error
> messages if invalid characters are stored. Oracle will check the characters,
> but if it detects - say - a Euro sign, it will not throw an error but
> clandestinely convert the character to a question mark.
>
>
> The best solution in my opinion would be to recreate the database using the
> character set AL32UTF8 and on the client either use WE8MSWIN1252 or
> AL32UTF8 (if your PHP code speaks UTF-8).

Well, the database server is quite out of my reach. The machine belongs to a customer, the main database has been growing for years and there're many other apps working on top of it. I couldn't even get any information about charsets from their DB admin.

Is there any way to get an unmodified output from a certain table field that I know contains (or it's supposed to contain) an Euro symbol so I can check with a binary editor what numeric code it's actually using?

-- 
-- http://alvaro.es - Álvaro G. Vicario - Burgos, Spain
-- Mi sitio sobre programación web: http://bits.demogracia.com
-- Mi web de humor al baño María: http://www.demogracia.com
--
Received on Thu Jul 24 2008 - 07:10:37 CDT

Original text of this message