Hi, I have installed the Oracle Database 10g Express Edition Release
10.2.0.1.0 on a Linux workstation for dev purposes, along with Apache
2 and PHP5. The production environment of my customer uses Unix for
the Oracle database server, Win2003/IIS for the webserver.
Our PHP application works with UTF-8 encoded strings and actually
sends SQL INSERTS in UTF-8 format to the server. When this data is
retrieved, special foreign characters are corrupted.
I'm a bit confused, since we did not experience these problems, after
recreating the databases we do. And it is not clear to me where I
should search for the characterset related issues.
Some NLS settings:
National Language Parameter Value
NLS_CHARACTERSET AL32UTF8
NLS_COMP BINARY
NLS_LANGUAGE AMERICAN
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_NCHAR_CONV_EXCP FALSE
NLS_TERRITORY AMERICA
Example of insert:
CREATE TABLE sys_languages (
id number(12,0) NOT NULL,
descr varchar2(60) NULL,
code_int varchar2(6) NULL,
code_html varchar2(6) NULL
);
CREATE SEQUENCE sys_languages_new START WITH 7 INCREMENT BY 1;
CREATE UNIQUE INDEX sys_languages_pk on sys_languages (id);
INSERT INTO sys_languages (id, descr,code_int,code_html) VALUES
(4,'Česky',null,null);
Data is sent correctly to the server, but returns corrupted.
Questions:
- Is it possible to use ALTER SESSION to change the characterset?
- What do we need to configure in order to have the database server
and the client work with UTF-8?
Thanks in advance for your reply.
Kind regards,
Nico