I consider that is the Operative System, because applications in Java and PHP have the same problem. I made this procedures:
In first place:
I changed the NLS_CHARACTERSET with the next lines:
conn /as sysdba
shutdown immediate;
startup mount;
ALTER SYSTEM ENABLE RESTRIcted session;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
alter database open;
UPDATE PROPS$ SET VALUE$ = 'AL32UTF8' WHERE NAME = 'WE8MSWIN1252';
commit;
shutdown immediate;
startup;
After
SQL> SELECT * from NLS_DATABASE_PARAMETERS WHERE parameter
IN ( 'NLS_LANGUAGE', 'NLS_TERRITORY', 'NLS_CHARACTERSET');
PARAMETER VALUE
—————————— —————————————-
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CHARACTERSET AL32UTF8
THE OUTPUT FORM MY COMPUTER WAS: AMERICAN,AMERICA,AL32UTF8, respectively
1-Tutorial:
Determine the NLS_LANG value. In the data warehouse database, run the command
SELECT * FROM V$NLS_PARAMETERS
Make a note of the NLS_LANG value, which is in the format [NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]
.
For example: American_America.UTF8
For Windows:
Navigate to Control Panel > System and click the Advanced tab. Click Environment Variables.
In System variables section, click New.
In the Variable Name field, enter NLS_LANG.
In the Variable Value field, enter the NLS_LANG value that was returned in Step 1.
The format for the NLS_LANG value should be [NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]
.
For example: American_America.UTF8
.
2-Tutorial: I entered in a REGEDIT in HKEY_LOCAL_MACHINE>SOFWTARE>Oracle>KEY_XE and I changed the NSLANG file, with the value_ American_America.AL32UTF8.
I reboot my laptop and I still have the same problem. It is just that in one time, all the characters turned into other characters.