Forum OpenACS Development: Response to PostgreSQL upper() / lower() functions and LATIN2 charset
I would love to use nsd8x instead of nsd76, but have not yet seen a configuration where it does not convert special characters, e.g. german umlauts, into two weird characters, exactly as described here http://dqd.com/~mayoff/encoding-doc.html.
Converting the database to an encoding other than utf-8 would be acceptable for me too, since I only need to run my site with 8859-1 (for the german umlauts mainly).
I tried the patches from http://www.ai.mit.edu/people/hqm/openacs, but they did not work for me - the umlauts are still getting transformed into two weird characters.
Adding a Ns_Log call in the patched conn.c, in the function Ns_QueryToSet, right after the call to Ns_DecodeUrlCharset like:
/* Use "ascii" to get a "raw" encoding (no translation) */ decode = Ns_DecodeUrlCharset(&ds, value, "8bit"); Ns_Log(Notice, "decoded value is: %s", value);
makes the two weird characters instead of the umlauts appear in the log
file. When Ns_DecodeUrlCharset is called with
8bit the same result appears in the logfile. I know very
little about neither C nor character encodings, so I have no idea what
is going wrong here.