Forum OpenACS Q&A: More on ISO 8859-1 character display issues

Collapse
Posted by Jonathan Marsden on
I played some more with this...

Using PG carefully initdb'ed and run with LANG=C, and with AOLserver 3.2+ad12 or 3.3+ad13 I can *still* get incorrect display of ISO 8859-1 (Latin 1) characters from OpenACS.

However, when I get rid of OpenACS and just run the exact same copy of AOLserver... the problem disappears!

Here is what I did:

#!/bin/bash
#
# iso8859test - sets up ISO 8859-1 test pages for AOLserver and OpenACS
#

# Generate ISO 8859-1 charset table from man page
man iso_8859_1 |col -b |egrep "^ *[0-9]" >iso_8859_1.txt

# Generate head and tail for HTML test pages
cat >iso_8859_1.html.head <<EOF
<HTML>
<HEAD>
<TITLE>ISO 8859-1 Test Page</TITLE>
</HEAD>
<BODY>
<PRE>
EOF

cat >iso_8859_1.html.tail <<EOF
</PRE>
</BODY>
</HTML>
EOF

# Create ISO 8859-1 test page
cat iso_8859_1.html.head iso_8859_1.txt iso_8859_1.html.tail >iso_8859_1.html

This generates a nice HTML page containing all the non-USASCII printable characters in ISO 8859-1. Then I checked I could view this file OK in my browsers. Next I copied it to /var/www/html/ (where Apache can serve it) and to /var/lib/aolserver/servers/default/pages/ (where AOLserver can serve it) and to /var/lib/aolserver/servers/defaultacs/www/ (where OpenACS can serve it).

Apache serves it fine. OpenACS serves it with extra "A-with-circumflex" characters. But, if I do

  cd /var/lib/aolserver/servers
  mv defaultacs defaultacs.old

And then do /sbin/service aolserver restart, AOLserver can then serve it just fine.

I repeated the test using AOLserver 3.2+ad12 and 3.3+ad13, no difference was noticed.

Conclusion: Something about the way OpenACS serves plain .html files breaks ISO-8859-1 output under OpenACS 3.2.5. It looks to me as though the primary bug here is in OpenACS 3.2.5 itself, not in PG or AOLserver.