Yep, I have that in the header and still the same problem. It's one thing or the other. Either the values from the database display correctly on the page, but values added from forms do not display correctly on the page but as €, or values from the database display as '?' and values added from the forms DISPLAY correctly on the page, but get added to the database as €. Depends on whether I override the dispatchRequest() or not, and neither of the above situations are useful. If anyone fancies having a look at the page online to see what I mean, please let me know and I'll send you a link. It's driving me absolutely crazy.

Regards,
David.


On 15 Nov 2009, at 08:39, Elim PDT wrote:

If you don't have the following line in your html head, it definitely a source of problem:

 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

I never tried wo5* with other languages. Wondering who have any experiences with utf-8, say Chinese or Russian?


From: David
To: WebObjects-Dev Mailing List List
Sent: Wednesday, November 11, 2009 5:17 AM
Subject: UTF8 and ContentEncoding

Hi all,

I have the following situation:

A database with all tables specified to default to UTF8 encoding.
Adaptor URL containing useUnicode=true&setContentEncoding=UTF8
A record in one table that holds the € currency symbol.

I am loading a WOComponent page to edit values etc., using a form.

Everything was fine and one day all the € symbols started appearing as '?'. Clearly something changed somewhere on the server but I don't know what. Anyway, the €msymbols that are appearing this way are displayed by using a WOString. The value it displays is from defaultCountry which is a variable of type COUNTRY loaded from the database and stored in the Session class.

€ symbols that were entered on the form, when added to a display group for example, would appear as €.

I've had a look around and what I found was this suggestion:

Put this in Application class:

   public void takeValuesFromRequest(WORequest r, WOContext c) {
        r.setDefaultFormValueEncoding("UTF8");
        super.takeValuesFromRequest(r,c);
    }

    public void appendToResponse(WOResponse r, WOContext c) {
        r.setContentEncoding("UTF8");
        super.appendToResponse(r,c);
        r.setHeader("text/html;charset=utf-8", "Content-Type");
    }

Which I did. It helped to a certain extent. It seemed to fix the problem with the form values, which now displayed correctly, but the '?' still appears where the value is displayed with WOString. Then I found another suggestion:

Put this in Application class:

public WOResponse dispatchRequest(WORequest aRequest) {
aRequest.setContentEncoding("UTF-8");
WOResponse aResponse = super.dispatchRequest(aRequest);
aResponse.setContentEncoding("UTF-8");
return aResponse;

Doing this solved the problem of the '?' but reverted the form values to display as €.

No matter what I do, there doesn't seem to be a way to get them both to display correctly. Any ideas?

Regards,
David.


_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/elim%40pdtnetworks.net

This email sent to [email protected]



No virus found in this incoming message.
Checked by AVG - www.avg.com
Version: 9.0.707 / Virus Database: 270.14.65/2502 - Release Date: 11/14/09 00:43:00

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to