Unanswered: How to troubleshoot storing multi-byte characters in Oracle
I'm trying to store multi byte characters in an oracle database. I created a simple HTML form where I can cut and paste multi-byte characters into the form. I get these characters from another website that is displaying characters in UTF-8.
Next, I submit the form. My ASP page retrieves the value from the form and inserts the value into an Oracle database using ADO.
My oracle database was setup using the UTF-8 character set.
I tried using:
1. Microsoft's OLE DB Driver for Oracle
2. Oracles OLE DB Driver for Oracle
3. Microsoft's ODBC Driver for Oracle
4. Oracles ODBC DRiver for Oracle.
My oracle database is 22.214.171.124 and I'm using Windows 2000 with IIS 5.0.
After I insert the value from the submitted form, I query the table where the values were submitted, and using ASP I generate an HTML page with these values. The text string that I entered in the original form is not the same! It is a mix of black squares and some japanese characters (the original form contained only japanese characters).
How do I go about trouble shooting this?
Is there a way to tell if the string stored in the database table is the correct string? I cannot see the text, but maybe compare the byte value of the string.
Is there any tips you can give me, or examples? I exhausted the web, I searched everywhere, tried different examples, and still cannot get it to work.
The NLS_LANG paramater of my database is set to AMERICAN_AMERICA.UTF8.
Setting the codepage for the ASP file to 65001 only spits out junk.
I made sure the the character set for the HTML page was set to UTF-8 in the header using a meta tag.
After looking at the registry, I noticed that there was a string value for NLS_LANG in sub keys of HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE.
I have two sub keys called HOME0 and HOME1 both which have the NLS_LANG string value. After changing these values to AMERICAN_AMERICA.UTF8, the issue with storing and displaying Japanese characters through ADO was solved.
If anyone has further insight on storing multi-byte characters using ADO please add to the thread.