ASP.Net/Oracle - International character issue - DBA and Developer advice. Need gurus.
Posted on 2010-01-01
I am having a problem with one of our apps. Oracle database is set to 32UTF8 character set. When we type in certain polish characters and some other characters, when coming back to display in my web application the characters get wiped out or show as little boxes or question marks etc. After a lot of troubleshooting in many of the editors like Toad. SQL Plus etc. the characters were looking like they were not on the letters for example a little tilda or hat on an "S" or a L with a little slash through it. Not sure what the characters are called but I thought the database was not storing it correct. However, in PL/SQL Developer if I clicked on the little box to bring up the data it did show the characters fine.
The datatype is varchar and I did research and find out we should use nvarchar not varchar. So I changed the field to nvarchar but I am still having the issue that when getting the value from the database it does not look right in the browser at all. Even in the code behind in some cases it wipes it out. If I bind it directly to a datagrid it shows little boxes etc. and the characters are not looking right.
I am trying to figure out what I can try as I tried in the web config of my application using in the globization setting the response and request to UTF8 but still no dice.
I am using Entity Framework and it looks like it actually comes back with the characters wiped out when I set the value to a string I see the data coming in is wiping the characters out. One thing that does work is we have a BLOB field storing the values as XML as well and that works right when I deserialize that field the value I am looking at has the characters correct with the XML field.
Any advice would be appreciated. I am trying to see what my issue really is at the database level or the app. I am leaning towards the app display as the values do look like they are storing right. I thought the nvarchar was the issue but it seems to be the same.